给定一个 TypeScript Tuple,例如:
const arr = [1, 2] as const;
我们在索引时进行静态类型检查:
console.log(arr[1]);
是好的,但是
console.log(arr[2]);
错误信息:
Tuple类型'readonly [1, 2]'的长度为'2',在索引'2'处没有元素。ts (2493)
这很好。
我想声明一个常量,使其类型为该元组的索引类型,这样可以将符合相同约束条件(0 | 1
)的内容分配给该常量。
我尝试了以下代码:
const index: keyof typeof arr = 2 as const;
console.log(arr[index]);
但 TypeScript 没有显示任何错误。我怀疑 index
是一个过于宽泛的 number
类型。