语法下方
interface StringArray {
[index: number]: string;
}
指出当StringArray
使用number
编入索引时,会返回string
。例如 - let myArray: StringArray;myArray = ["Bob", "Fred"];let myStr: string = myArray[0];
因此,myArray
通过声明类型为string
的类型约束存储为StringArray
类型的值。密钥(索引)总是string
类型,引擎盖下(JavaScript),尽管提到number
从以下语法
class Animal{
name: string;
}
class Dog extends Animal{
breed: string;
}
interface NotOkay {
[x: number]: Animal;
[x: string]: Dog;
}
1)NotOkay
语法状态是什么?
从以下语法
interface NumberDictionary {
[index: string]: number;
length: number; // ok, length is a number
name: string; // error, the type of 'name' is not a subtype of the indexer
}
2)NumberDictionary
状态是什么?
3)为什么这两种语法都错了? error TS2413
& error: TS2411