先看下这段代码:
class Animal {
type: string;
}
class Dog extends Animal {
name: string
}
class AnimalArray {
dog: Dog;
readonly [index: number]: Dog;
readonly [index: string]: Dog;
}
let myArray: AnimalArray = { dog:
{ type: "animal", name: "terry" }
}
console.log(myArray.dog["name"]); // terry
console.log(myArray.dog["type"]); // animal
最后面是运行结果。好奇怪,我先记下来,等搞清了再来解释。