可索引类型 - TypeScript

时间:2017-11-25 15:09:29

标签: javascript typescript duck-typing

语法下方

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

0 个答案:

没有答案