我希望打字稿将其报告为错误:
const map: { [key: string]: string } = {};
const value = map[1]; // 1 is not a string...
为什么打字稿在这里不抱怨?
答案 0 :(得分:0)
在javascript中,对象的键始终是字符串,如果您传递数字,它将自动转换为字符串。
Let obj = {};
obj[3] = ‘something’;
console.log(Object.keys(obj));
// [‘3’]
如果使用地图,则可以将键值严格键入为
let m = new Map<string, any>();
m.set(3, "1st three");
m.set("3", "2nd three");