请问老师这样写为什么没报错呢?

来源:10-16 【高级类型 Record 真实应用】 异步数据扁平化 的实现【 实现方式1 】

寂寞追不上我

2022-09-09

http://img.mukewang.com/szimg/631a92d209155ae317721086.jpg


谢谢老师!

写回答

1回答

keviny79

2022-09-12

这是几种特例赋值,见代码:

interface Door {

  [x: number]: any

}

let door: Door = { 3: "wangwu" }

let door21: Door = { username: "wangwu" } // 错误

const name0 = "username"

let door22: Door = { [name0]: "wangwu" } // 错误

//  ts 特例赋值

const name: string = "username" // 增加 string 类型

let door31: Door = { [name]: "wangwu" } // 正确  ts把[x:number]自动转换为[x:string]

const usr = { username: "wangwu", age: 23 }

let door32: Door = { [usr.username]: "wangwu" } // 正确   ts把[x:number]自动转换为[x:string]

const isName: symbol = Symbol()

let door4: Door = { [isName]: "wangwu" } // 正确  // 正确  ts把[x:number]自动转换为[x:symbol]


0
0

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

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

871 学习 · 425 问题

查看课程