对象索引签名是否等同于数组类型?

Stu*_*ham 8 typescript

规范的第3.5.4节规定:"ElementType []形式的数组类型等同于具有索引签名[index:number]的对象类型:ElementType"但这似乎不是这种情况,例如

var a: {[index: number]: string;};
var b: string[];
a = ['1','2'];  // ERROR: Cannot convert 'string[]' to '{ [index: number]: string; }'
b = ['1','2'];  // OK
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

Rya*_*ugh 1

是的,这是编译器中的一个已知错误。它将在未来的版本中修复。最好的解决方法是强制转换(在作业的两侧 -a = <string[]>['1', '2']可能看起来不那么奇怪)。