关键词: TypeScript, TypeChallenge
对于给定的元组,您需要创建一个通用的Length
,选择元组的长度
例如
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 any[]> = T["length"];
Length
的类型参数首先要是元组, 约束T extends any[]
对于T
, 我们只需要获取"length"
属性并返回即可
伪码如下
function Length(T) {
if(!(T extends Array)) throw new Error()
return typeOf(T["length"])
}