在 TypeScript 中,我有一个数组,我像使用地图一样使用它来访问另一个对象数组。这是我的代码的一个极其简化的示例:
var mp : Number[] = [1, 2, 0];
var arr : any[] = ['a', 4, /regex/];
console.log(arr[mp[2]])
然而,运行这个收益:
error TS2538: Type 'Number' cannot be used as an index type.
我曾在别处看过,但针对此类错误的其他答案与数组和 Number
之类的简单问题无关。如果不是 Number
对象,我如何索引数组?
答案 0 :(得分:2)
TypeScript 有两种基本的数字类型,原始 number
和对象类型 Number
。有关解释,请参阅 TypeScript: Difference between primitive types,但简而言之:
JavaScript 具有原始类型(数字、字符串等)和对象类型(数字、字符串等,它们在运行时显示)的概念。 TypeScript 类型 number 和 Number 分别指代它们。
事实上,如果你运行:
console.log(typeof 1);
您会注意到它返回的是 number
,而不是 Number
。
如果您将地图更改为 number
对象的数组,则您的代码将不会出错。