还是没懂第二种问题的原因是什么?

来源:2-19 看似简单的取值为何总抛出错误?

Richard学python

2023-10-23

let obj:object = {name:'richard',age:18};

let u = obj['name'] // ts会先去object类型中去找是否有 'name' 类型

export {}

理解还是晕乎乎的,以下是我目前的理解:
object 类型本身就是代表着 数组、对象、函数类型,所以对 object 类型的数据来说使用索引是查看是否有相应的类型,在本案例中,object肯定是不存在 name 类型的,所以报错了,但是这样设计的意义是什么呢? obj 肯定已经是对象类型了,那就去找对应的值嘛,这样设计显得很笨,还是我理解有问题呢?请kevin老师解答下。谢谢

写回答

1回答

keviny79

2023-10-23

  ts  设计 object 还是有他的用武之地 :

举一个场景吧:比如课程后面章节讲到=把数组和对象进行深拷贝,object 就用上了(可以被后面章节讲到的 Record<string,any>取代)

https://img.mukewang.com/szimg/6535d92a09245bd112120481.jpg

不过 object 表示函数类型的场景比较少。 


1
1
Richard学python
好像懂点了,看来给继续学,才能体会到,谢谢老师
2023-10-23
共1条回复

TypeScript 从入门到深度掌握,晋级TS高手

200+技术点,22 场景应用,Vue3 源码 TS 用法剖析

430 学习 · 53 问题

查看课程