采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
索引类型是通过index获取值的,索引可以是数字或字符串,但是索引和类有什么关系?Animal类和Dog类有索引吗?还有啥是子类型?
1.索引和类没什么关系啊,2 个概念,索引是用于对象属性的检索。2.举个例子,null和undefined是所有类型的子类型,也就是说你可以把 null和undefined赋值给number类型的变量。
interface NotOkay { [x: number]: Animal [x: string]: Dog } 这段是啥意思,根据索引返回一个类吗
定义 NotOkay 这个接口类型,它允许 number 类型的索引,值为 Animal 类型,也允许 string 类型的索引,值为 Dog 类型。 但这样是不 OK 的,因为当使用 number 来索引时,JavaScript 会将它转换成string 然后再去索引对象。因为比如某个满足 NotOkay 接口的变量 a, a[0] 为自动转成 a['0'],也就是 Animal 类型自动转换成 Dog 类型,这样是转换不成功的,因为 Dog 是 Animal 的子类,Animal 是 Dog 的父类。 结论:数字索引的返回值必须是字符串索引返回值类型的子类型。
也就是数字索引会自动引发子类型的转换,Animal会自动转为Dog,所以说得到的其实是Dog类对吗?
登录后可查看更多问答,登录/注册
课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!
1.3k 14
1.6k 13
1.4k 13
1.0k 13
1.5k 11