Rio*_*lku 10 arrays types typescript
在 TypeScript 中,我有一个数组,我将其用作映射来访问另一个对象数组。这是我的代码的一个极其简化的示例:
var mp : Number[] = [1, 2, 0];
var arr : any[] = ['a', 4, /regex/];
console.log(arr[mp[2]])
Run Code Online (Sandbox Code Playgroud)
然而,运行这个会产生:
error TS2538: Type 'Number' cannot be used as an index type.
Run Code Online (Sandbox Code Playgroud)
我在其他地方查看过,但此类错误的其他答案并不涉及像数组和Number. 如果不是Number对象,如何索引数组?
Rio*_*lku 25
TypeScript 有两种基本数字类型: primitenumber和 Object 类型Number。请参阅TypeScript:基本类型之间的差异以获取解释,但简而言之:
JavaScript 具有基本类型(数字、字符串等)和对象类型(数字、字符串等,在运行时显现)的概念。TypeScript 类型 number 和 Number 分别引用它们。
事实上,如果你运行:
console.log(typeof 1);
Run Code Online (Sandbox Code Playgroud)
您会注意到它返回number,而不是Number。
如果将映射更改为对象数组number,则代码将编译而不会出现错误。
| 归档时间: |
|
| 查看次数: |
21261 次 |
| 最近记录: |