当前可以在TypeScript中的类上实现索引器吗?

class MyCollection {
   [name: string]: MyType;
}

这不会编译。当然,我可以在接口(interface)上指定索引器,但是我需要这种类型的方法以及索引器,所以接口(interface)是不够的。

谢谢。

最佳答案

您不能使用索引器实现类。您可以创建一个接口(interface),但是该接口(interface)不能由类实现。它可以用普通的JavaScript实现,您可以在接口(interface)上指定函数以及索引器:

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);

关于class - 在TypeScript中的类中实现索引器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14841598/

10-09 18:00