具有以下定义的* .d.ts文件:
class StateManager {
states(key:string): Phaser.State;
可以通过两种方式访问:
myStateManager.states[key]
myStateManager.states(key)
但由于状态的JS定义,只有第一个才能真正起作用:
this.states = {};
有没有办法在打字稿中强制使用正确的表示法?
答案 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