打字稿回调类型不匹配

时间:2016-02-05 03:36:42

标签: typescript

我在回调很多地方都有这段代码:

return new Promise<Result> (
        (resolve : (Result ) =>void,reject: ( any) =>void) =>{
    .......
   });

我以为我会为这个长类型创建一个接口:

interface callback<T> {
   resolve : (value? :T ) =>void;
    reject  : (error? : any) =>void;  
}

但我不能像以下那样使用它:

return new Promise<Result> ( 
( c : Callback<Result> ) = > {
 ......
}

TS抱怨Callback不是解决方案:Result =&gt;无效。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

如果您定位ES6,则已经键入了Promise,如果您定位ES5,则会提供填充程序的类型,以及非本机Promise库的拼贴。所以,你不应该为此编写自己的类型定义。在构建promise时,这是您需要编写的唯一代码:

new Promise<TypeOfResult>((resolve, reject) => {
  // do yar thing
})

TypeScript会推断resolvereject的类型,因此明确指定其类型是多余的,不必要的详细。