IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    TypeScript 挑战(四)- 第一个元素

    Durban发表于 2020-10-07 22:40:15
    love 0

    第一个元素 - 实现一个通用First<T>,它接受一个数组T并返回它的第一个元素的类型。学习记录如下


    题目简介


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

    例如

    type arr1 = ['a', 'b', 'c']
    type arr2 = [3, 2, 1]
    
    type head1 = First<arr1> // expected to be 'a'
    type head2 = First<arr2> // expected to be 3

    测试用例


    import { Equal, Expect } from '@type-challenges/utils'
    
    type cases = [
      Expect<Equal<First<[3, 2, 1]>, 3>>,
      Expect<Equal<First<[() => 123, { a: string }]>, () => 123>>,
      Expect<Equal<First<[]>, never>>,
      Expect<Equal<First<[undefined]>, undefined>>
    ]
    

    答案


    type First<T extends any[]> = T extends never[] ? never : T[0]

     



沪ICP备19023445号-2号
友情链接