2016-08-29 153 views
10

我有一个对象存储缓存数据,应该是这样的:如何定义对象的对象类型的打字稿

private data = { 
    'some_thing': new DataModel(), 
    'another_name': new DataModel() 
} 

我试图在构造一个空的对象分配给它:

this.data = {}; // produces build error 

基本上,我需要定义“数据”字段的类型来表示它将具有随机名称和类型为DataModel的值的键。我试过这样做:

private data: Object<DataModel> 

但是这是无效的。我将如何指定一个正确的类型?

回答

34

它应该是:

private data: { [name: string]: DataModel }; 

然后这应该工作:

this.data = {}; 
+0

曾为 - 谢谢! – marius

+0

希望我给这一百万票!谢了哥们! – Encoder