logoProsperBao

获取元组长度

2022-03-20 06

题目来源(type-challenges)

问题

创建一个通用的Length,接受一个readonly的数组,返回这个数组的长度。

例如:

type tesla = ['tesla', 'model 3', 'model X', 'model Y']
type spaceX = ['FALCON 9', 'FALCON HEAVY', 'DRAGON', 'STARSHIP', 'HUMAN SPACEFLIGHT']

type teslaLength = Length<tesla> // expected 4
type spaceXLength = Length<spaceX> // expected 5

解答

type Length<T extends readonly any[]> = T['length']

拆分

  1. T extends readonly any[] 限制了 T 必须是元组
  2. T['length'] 返回 T 的长度