# 18-获取元组长度
# 题目描述
创建一个通用的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
# 分析
这题还是元组的特性,元组本身非常类似于 js 中的数组,其本身属性中就有 length
属性,故只需要利用 ts 中的 索引访问 (opens new window) 即可获取元组的长度。 T['length']
。此处需要注意和 11-元组转换为对象 中的索引签名访问区分开,此处的 length
是属性,故需要用单引号进行包裹,而 T[number]
不需要。
# 题解
type Length<T extends readonly any[]> = T['length'];
# 知识点
- 元组类型,可以直接通过 length 属性访问长度,
T['length']
← 14-第一个元素 43-实现Exclude →