目前是否可以在TypeScript中的类上实现索引器?
class MyCollection {
[name: string]: MyType;
}
这不编译。当然,我可以在接口上指定索引器,但是我需要这种类型的方法以及索引器,因此接口是不够的。
感谢。
答案 0 :(得分:30)
您无法使用索引器实现类。您可以创建一个接口,但该接口不能由类实现。它可以用纯JavaScript实现,您可以在界面上指定函数和索引器:
class MyType {
constructor(public someVal: string) {
}
}
interface MyCollection {
[name: string]: MyType;
}
var collection: MyCollection = {};
collection['First'] = new MyType('Val');
collection['Second'] = new MyType('Another');
var a = collection['First'];
alert(a.someVal);
答案 1 :(得分:7)
对于那些寻找答案的人来说,这是一个老问题:现在可以定义一个索引属性,如:
let lookup : {[key:string]:AnyType};
密钥的签名必须是字符串或整数,请参阅: