首先在js的对象中有一个设定,就是对象的key可以是字符串,也可以是数字。
不论key是字符串还是数字,遍历对象key的时候,这个key会变成字符串
通过[] 操作符访问key对应值时候,不论是数字还是字符串都转成了 字符串的key 进行访问
上一段js代码:
let obj = {}
for(let key of [1,2,3]){
obj[key] = "xxx"
}
for(let key in obj){
console.log(typeof key)
}
let key1 = '2'
console.log(obj[key1])
let key2 = 2
console.log(obj[key2])
输出结果是:
可以看到 obj[key] = "xxx" 赋值的时候,确实key是number
但是遍历key的时候,打印出的类型是string
后面通过key1(string)和key2(number)访问元素,都是可以的
改成ts代码如下
type key_