关于同时存在数字索引和字符串索引,两种类型返回值的问题
来源:3-12 接口 -类类型+继承接口+混合类型+接口继承类

Joshua_Lee
2020-12-07
老黄,后面的解释还能看懂,就是不理解划线那里为什么要这么定义。难道这段话当做一个知识点硬记着就行了吗?
写回答
1回答
-
ustbhuangyi
2020-12-07
interface NotOkay {
[x: number]: Animal,
[x: stirng]: Dog
}
这样为啥不行呢,举个例子 let a:NotOkay = xxx
a[0] 的类型是一个 Animal,a['0'] 的类型是一个 Dog
由于 a[0] 会自动转换成 a['0'],相当于说 Animal 是一个 Dog,显然是不合理的。而反过来就可以,因为 Dog 是一个 Animal,Dog 是 Animal 的子类型。032020-12-08
相似问题