在打字稿一个类实现一个索引(Implementing an indexer in a class i

2019-07-19 19:05发布

它是目前可以实现在打字稿一类的索引?

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

这不编译。 我可以在接口上指定一个索引,当然,但我需要这种类型的方法以及定位器,这样的接口是不够的。

谢谢。

Answer 1:

您不能实现与索引类。 你可以创建一个接口,但接口不能用一个类来实现。 它可以在普通的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);


Answer 2:

这是一个老问题,对于那些寻找答案:现在它可以定义像索引属性:

let lookup : {[key:string]:AnyType};

关键的签名必须是字符串或整数看到:

在www.typescriptlang.org接口



文章来源: Implementing an indexer in a class in TypeScript