type-challenges

每天花几分钟练练ts...

7、Last of Array​​​​​​​

实现一个通用Last<T>,它接受一个数组T并返回其最后一个元素的类型。

例如

type arr1 = ['a', 'b', 'c']
type arr2 = [3, 2, 1]type tail1 = Last<arr1> // expected to be 'c'
type tail2 = Last<arr2> // expected to be 1

实现

type arr1 = ["a", "b", "c"];// infer 关键字声明了一个新的类型变量B
type Last<T extends any[]> = T extends [...infer A, infer B] ? B : never;// 或者
type Last<T extends any[]> = T extends [...any, infer L] ? L : never;// 或者
type Last<T extends any[]> = [any, ...T][T["length"]];type Res = Last<arr1>;
// 相当于 type Res = "c";

8、出堆

实现一个通用Pop<T>,接受一个数组T并返回一个没有最后一个元素的数组。

type arr1 = ["a", "b", "c"];type Pop<T extends any[]> = T extends [...infer U, any] ? U : nevertype Res = Pop<arr1>;// 相当于type Res = ["a", "b"]

type-challenges [medium]相关推荐

  1. Tasteless challenges medium WP

    http://chall.tasteless.eu/ 国外的一个靶场,都是单点知识,medium大部分还是比较简单 medium Level 1- Infiltration http://chall. ...

  2. oracle virtualbox 添加共享硬盘

    创建共享磁盘 oracle virtualbox创建共享磁盘: 1.进入oracle VM的安装路径,执行如下命令: VBoxManage createhd --filename "E:\0 ...

  3. 无头虚拟化服务器,VBoxHeadless - 使用VirtualBox 4.0在无头Ubuntu 10.10服务器上运行虚拟机...

    VBoxHeadless - 使用VirtualBox 4.0在无头Ubuntu 10.10服务器上运行虚拟机 本指南介绍如何在无头Ubuntu 10.10服务器上运行VirtualBox 4.0的虚 ...

  4. java中Date与String的相互转化

    1:方法 [html]view plain copy 这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=ne ...

  5. VirtualBox通过命令方式批量创建并配置虚拟机

    通过批处理在引用VirtualBox命令批量创建虚拟机 需求:自动化创建一批虚拟机. 解决方法:本文通过VirtualBox结合其提供的命令来完成的.  Bat代码: @echo off for /l ...

  6. 脚本启动慢_Linux 常用运维脚本,建议收藏

    同步本机时间 ntpdate 210.72.145.44 清除系统缓存,空出更多内存 free && sync && echo 3 > /proc/sys/vm/ ...

  7. 【转载】java中Date与String的相互转化

    1:大体思路 这种转换要用到java.text.SimpleDateFormat类 字符串转换成日期类型: 方法1: 也是最简单的方法 Date date=new Date("2008-04 ...

  8. Linux学习总结(55)——Linux 运维常用脚本

    同步本机时间 ntpdate 210.72.145.44 清除系统缓存,空出更多内存 free && sync && echo 3 > /proc/sys/vm/ ...

  9. LINUX 添加xp虚拟机

    微软已停止对xp系统的漏洞更新支持.不过,目前国内各大技术大佬都相继声明,继续提供xp的漏洞更新服务,为xp保驾护航! 省内存嘛,所以还得装一个玩! 安装时的激活key  : HTXH6-2JJC4- ...

  10. k8s glusterfs mysql_k8s使用glusterfs实现动态持久化存储

    简介 本文章介绍如何使用glusterfs为k8s提供动态申请pv的功能.glusterfs提供底层存储功能,heketi为glusterfs提供restful风格的api,方便管理glusterfs ...

最新文章

  1. java学习笔记_Java学习笔记——第1篇
  2. Android呼叫开发系列WebService
  3. ZPhotoEngine超级算法库
  4. js---25桥模式
  5. Django基础(四)
  6. 读书笔记 - 《吉卜力的伙伴们》
  7. 360安全卫士核心改名ZhuDongFangYu.exe
  8. 在ASP.NET Core中编写合格的中间件
  9. about-ie下模拟input file上传功能失效
  10. 5 加盐_洗猪肚,加盐洗就错了!加这2样,5分钟洗净,猪肚不腥不臊更入味
  11. android edittext最多输入,android 中如何限制 EditText 最大输入字符数
  12. 存数据返回他的序列号id_雪花般的分布式唯一ID雪花算法
  13. 【ShaderLab学习】AlphaTest AlphaBlend理解[2]
  14. php源码授权网络验证系统,WEB端管理网络验证授权系统源代码
  15. 四千个厂商默认账号密码 默认登录凭证
  16. 电影院订票选座小程序 电影小程序毕业设计 毕业论文 开题报告和效果图
  17. 以太坊Ghost协议
  18. 不懂就要问!流量卡拒收对个人会有影响吗?
  19. Js实现在线Hex转Base64,在线Base64转Hex
  20. java,jsp获取上一个访问页面URL

热门文章

  1. Ubuntu虚拟机中VCS安装和启动过程中遇到的问题总结
  2. 红盟过客 我与linux的故事
  3. 法拉第PK特斯拉,美产与国产谁能取胜?
  4. jenkins邮件配置和邮件发送
  5. 高德地图开发-常用api踩坑使用
  6. NB-IoT技术实战开发----keil安装和使用
  7. 傅立叶变换在图像处理中的作用
  8. Html5 Api 实现浏览器全屏
  9. for example: not eligible for auto-proxying问题排查
  10. 开源项目源码阅读方法