如何从TypeScript界面​​返回Promise?

时间:2016-02-20 15:27:19

标签: javascript typescript

这是我的界面

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,它编译得很好。

0 个答案:

没有答案