type Foo = { [key: number]: string }
const foo: Foo = { 100: 'foo', 200: 'bar' }
const sizes: number[] = Object.keys(foo)
给我:
Type 'string[]' is not assignable to type 'number[]
为什么 Typescript 假定 string[]
?在这里创建数字数组的正确方法是什么?
最佳答案
所有键都是 JavaScript 中的字符串 - 只需使用 map
:
const sizes: number[] = Object.keys(foo).map(Number);
这仅适用于数字字符串 - 例如,如果它是包含小数的欧洲字符串,它将是 NaN
,并且永远不会结束。
console.log(Number("10,7"));
或者改变你的类型之一:
const sizes: string[] = Object.keys(foo);
或者:
type Foo = { [key: string]: string };
关于javascript - Object.keys 在 typescript 中使用数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56804096/