实现
type ReadonlyArray<T> = readonly T[];
type Length<T extends ReadonlyArray<unknown>> = T extends ReadonlyArray<infer U> ? T['length'] : never;
const array = [1, 2, 3, 4, 5] as const;
const length: Length<typeof array> = array.length; // 5
这个例子定义了一个 ReadonlyArray 类型别名,表示只读的数组。然后,使用 infer 关键字推断数组元素的类型,并定义了 Length 类型别名,可以返回数组的长度。最后,定义了一个 array 变量,并使用它的类型来确定 length 的类型。