如何在typescript中创建一个空的JQueryPromise?
我很难理解JQueryPromise的类型。 我希望我的承诺是void类型,但是当接口定义接受void时,我不知道如何返回/强制转换承诺以匹配接口签名。当我编译时,我得到一个错误: 类型“()=>JQueryPromise”和“()=>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>; }
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()
延迟?@Bergiundefined
是允许的,相当于void
:@basarat:当然允许,但不推荐。我说的是“应该”,而不是“必须”:-)它很有用,例如,当你以承诺的方式需要超时时。如果要返回值,请不要使用void。我不认为有什么特别的建议:)