使用来自不同模块的接口作为顶级接口

时间:2015-12-11 08:12:30

标签: generics typescript

Node MongoDB驱动程序有一个MongoClient.connect()方法选项,您可以在其中传递包含promiseLibrary值的选项哈希。目前我hacked a version of the mongodb.d.ts仅使用q async library。要避免在任何地方使用q.Promise<T>的返回类型,而是使用Promise<T>。有没有办法声明Promise接口,如:

interface Promise<T> extends q.Promise;

目前,这会产生以下错误:

Generic type 'Promise<T>' requires 1 type argument(s).

1 个答案:

答案 0 :(得分:0)

在尝试改进和概括问题时,我发现答案是:

interface Promise<T> extends q.Promise<T> {}

例如:

declare module FirstModule {
    interface SomeGeneric<T> {
        finally(): SomeGeneric<T>;
    }
    export function resolve<T>(object: T): SomeGeneric<T>;
}

declare module SecondModule {
    interface SameGeneric<V> extends FirstModule.SomeGeneric<V> {}

    interface Thing {
        Method<U>(): SameGeneric<U>;
    }
}