any 也无法作为索引值吗?

来源:7-5 【TS类型断言丶转换应用】 类型断言的9种使用场景 3

迷你侠

2021-09-19

图片描述

写回答

1回答

keviny79

2021-09-19

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)



2
0

晋级TypeScript高手,成为抢手的前端开发人才

轻松驾驭 TypeScript 高级用法, 突破前端成长瓶颈

871 学习 · 425 问题

查看课程