打字稿回调类型不匹配
问题描述:
我有这样的代码在回调很多地方:打字稿回调类型不匹配
return new Promise<Result> (
(resolve : (Result) =>void,reject: (any) =>void) =>{
.......
});
,我想我会为这个long类型的接口:
interface callback<T> {
resolve : (value? :T) =>void;
reject : (error? : any) =>void;
}
但在地方像我不能用它:
return new Promise<Result> (
(c : Callback<Result>) = > {
......
}
TS抱怨回调不是解决办法:Result => void。
我该如何让它工作?
答
如果您的目标是ES6,那么承诺已经被输入,如果您的目标是ES5,并且类型为非本机Promise库,则可以使用垫片。所以,你不需要为此编写你自己的类型定义。当构建一个承诺,这是你需要编写的代码只:
new Promise<TypeOfResult>((resolve, reject) => {
// do yar thing
})
打字稿会推断resolve
和reject
因此指定其类型的类型明确是多余的,不必要的冗长。