从typescript访问对象属性

时间:2014-01-08 21:42:33

标签: typescript

具有以下定义的* .d.ts文件:

class StateManager {
    states(key:string): Phaser.State;

可以通过两种方式访问​​:

myStateManager.states[key]
myStateManager.states(key)

但由于状态的JS定义,只有第一个才能真正起作用:

this.states = {};

有没有办法在打字稿中强制使用正确的表示法?

1 个答案:

答案 0 :(得分:1)

听起来你想要一个索引签名吗?

class StateManager {
    states: { [key: string]: Phaser.State };
}
var x = new StateManager();
var p: Phaser.State = x.states['hello']; // OK
var e = x.states('hello'); // Error