logoProsperBao

IsTuple

Apr 22, 2022

题目来源(type-challenges)

问题

实现一个类型 IsTuple,它接受输入类型 T 并返回 T 是否为元组类型。

type case1 = IsTuple<[]> //  true
type case2 = IsTuple<[number]> //  true
type case3 = IsTuple<readonly [1]> //  true
type case4 = IsTuple<{ length: 1 }> //  false
type case5 = IsTuple<number[]> //  false

解答

type IsTuple<T> = 
  T extends readonly any[]?
    number extends T['length']?false:true
  :false

拆分

  1. 先判断是否是只读数组或者是数组
  2. 元组不带长度
>
CC BY-NC-SA 4.0 2021-PRESENT © Prosper Bao