如何在typescript中创建一个空的JQueryPromise?

如何在typescript中创建一个空的JQueryPromise?,jquery,interface,typescript,jquery-deferred,Jquery,Interface,Typescript,Jquery Deferred,我很难理解JQueryPromise的类型。 我希望我的承诺是void类型,但是当接口定义接受void时,我不知道如何返回/强制转换承诺以匹配接口签名。当我编译时,我得到一个错误: 类型“()=>JQueryPromise”和“()=>JQueryPromise”的调用签名不兼容 下面是代码示例: module Sample { export interface Ifoo { bar: () => JQueryPromise<void>; }

我很难理解JQueryPromise的类型。 我希望我的承诺是void类型,但是当接口定义接受void时,我不知道如何返回/强制转换承诺以匹配接口签名。当我编译时,我得到一个错误:

类型“()=>JQueryPromise”和“()=>JQueryPromise”的调用签名不兼容

下面是代码示例:

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

    export class fooClass implements Ifoo {
        bar() {
            var result = $.Deferred();
            // logic
            return result.promise();
        }
    }
}
模块示例{
导出接口Ifoo{
条:()=>JQueryPromise;
}
导出类fooClass实现Ifoo{
bar(){
var result=$.Deferred();
//逻辑
返回result.promise();
}
}
}
我做错了什么;或者我该怎么做才对

谢谢

-John

在创建定义时使用

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

    export class fooClass implements Ifoo {
        bar() {
            var result = $.Deferred<void>();
            // logic
            return result.promise();
        }
    }
}
模块示例{
导出接口Ifoo{
条:()=>JQueryPromise;
}
导出类fooClass实现Ifoo{
bar(){
var result=$.Deferred();
//逻辑
返回result.promise();
}
}
}

不要在承诺中使用
void
。每一个承诺都应该代表一个结果值。您如何
resolve()
延迟?@Bergi
undefined
是允许的,相当于
void
:@basarat:当然允许,但不推荐。我说的是“应该”,而不是“必须”:-)它很有用,例如,当你以承诺的方式需要超时时。如果要返回值,请不要使用void。我不认为有什么特别的建议:)