如何在typescript中创建void JQueryPromise?

Joh*_*Koz 6 jquery interface jquery-deferred typescript

我无法理解JQueryPromise的类型.我希望我的承诺是void类型,但是当接口定义接受void时我不知道如何返回/转换promise来匹配接口签名.当我编译时,我收到错误:

调用类型'()=> JQueryPromise <{}>'和'()=> JQueryPromise'的签名是不兼容的.

以下是代码示例:

module Sample {
    export interface Ifoo {
        bar: () => JQueryPromise<void>;
    }

    export class fooClass implements Ifoo {
        bar() {
            var result = $.Deferred();
            // logic
            return result.promise();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么; 或者我能做些什么呢?

谢谢!

-约翰

bas*_*rat 14

<void>在创建defferred时使用:

module Sample {
    export interface Ifoo {
        bar: () => JQueryPromise<void>;
    }

    export class fooClass implements Ifoo {
        bar() {
            var result = $.Deferred<void>();
            // logic
            return result.promise();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)