any 也无法作为索引值吗?
来源:7-5 【TS类型断言丶转换应用】 类型断言的9种使用场景 3

迷你侠
2021-09-19
写回答
1回答
-
1. 你用的是const ,课堂用的是 let , 加了 const 就不是symbol类型了,而是 unique symbol ,而 unique symbol 值唯一,可以被拿来当索引类型
2. 把一个const类型常量转换为any类型尽管正确. 但这里 TypeScript 提示出了偏差, 它是想告诉我们作为索引类型时把const类型常量转换成any类型 就多此一举了
const symid = Symbol("objid")
let stuObj = { [symid]: 101, username: "wangwu", age: 23 }
let stuObjId = stuObj[symid]// 正确, unique symbol 值唯一,可以被拿来当索引类型
console.log("stuObjId:", stuObjId)// 101
let stuObjId2 = stuObj[symid as any]// 提示出了偏差的编译错误
console.log("stuObjId:", stuObjId)// 101
const username = "username"
let usmValue = stuObj[username as any]// 提示出了偏差的编译错误
console.log("usmValue:", usmValue)
20
相似问题