如何在typescript中创建void JQueryPromise?

时间:2014-08-14 12:05:13

标签: jquery interface typescript jquery-deferred

我无法理解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();
        }
    }
}

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

谢谢!

-John

1 个答案:

答案 0 :(得分:14)

创建延期时使用<void>

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

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