我定义了一个接口-相关部分在这里:
actors:{
name:{ // options (Object) is specific to each actor type
// see documentation at top of each actor
factory:string,
url:string,
options:Object
}
//...
}
我实现如下接口:
actors:{
'unitcube':{
factory:'Unitcube',
url:'../src/app/models/stage/actors/objects/unitcube',
options:{wireframe:false,
color:'red',
opacity:0.9,
transform:{t:[0.0,2.0,-3.0001],e:[0.0,1.0,0.0],s:[1.0,3.0,1.0]}
}
}
//...
}//actors
该接口通过tslint,但是我收到tslint / tsc错误,该错误是接口的类型和实现不同-特别是'unitcube'和名称。
如何键入指定字符串名称的对象的列表? (即如何在界面的actor部分中定义“名称”?)
谢谢。
答案 0 :(得分:0)
interface IActors {
actors: IActorType
}
interface IActorType {
[name: string]: //so on and so forth
}
问题中定义的接口将键强制为字面意义上的“名称”。当使用“ unitcube”或任何其他参与者的名称实现时,其值将不等于“名称”。[名称:字符串]允许此操作键是动态的,因此可以使用字符串类型的任何角色名称。