typescript - 为什么打字稿允许我使用数字作为字符串映射的索引值?
问题描述
我希望这会被打字稿报告为错误:
const map: { [key: string]: string } = {};
const value = map[1]; // 1 is not a string...
为什么打字稿不在这里抱怨?
解决方案
在 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");
推荐阅读
- angular - Angular - 表单提交被取消,因为在尝试显示数据时表单未连接
- android - 无法理解如何在应用程序中打开简单的 TWA(使用 AndroidX)
- r - 在R中将嵌套列表转换为数据框
- firebase - Firebase Auth REST API - 使用电子邮件/密码登录不会返回刷新令牌
- r - 为什么在 R 中使用 gsub() 删除美元符号实际上会改变数据?
- python - 向量化 softmax 交叉熵梯度
- linux - 了解 ASAN 输出
- python - Pandas 通过条件检查将多列数据框从长到宽重塑
- python - 如何将用户的头像与 cloudinary / Django 相关联?
- python-3.x - 将 nltk.pos_tag 应用于整个数据框