这是我的界面
declare module ISteeplejack {
export interface IRealtimeStrategy {
onConnect: (event: string) => any;
send: (event: string) => any;
use: (namespace: string) => any;
}
}
我可以在我的课程中使用这个界面,例如:
export class Realtime {
protected _strategy: ISteeplejack.IRealtimeStrategy
}
但是,我希望三种接口方法返回一个Promise。当我在我的界面中提出一个如何注入它的承诺时,它无法编译
declare module ISteeplejack {
export interface IRealtimeStrategy {
onConnect: (event: string) => Promise<any>;
send: (event: string) => Promise<any>;
use: (namespace: string) => Promise<any>;
}
}
/path/to/steeplejack/lib/realtime.ts(32,39): error TS2305: Module 'ISteeplejack' has no exported member 'IRealtimeStrategy'.
/path/to/steeplejack/lib/realtime.ts(42,48): error TS2305: Module 'ISteeplejack' has no exported member 'IRealtimeStrategy'.
如何定义界面以便告诉界面返回Promise?
我同时安装了es6-promise npm包和typings定义。
更新
在Cloud9上举例说明。如果您运行npm run build
,您将看到问题所在。取出界面中的Promise<any>
并替换为any
,它编译得很好。