我在回调很多地方都有这段代码:
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;无效。
我怎样才能让它发挥作用?
答案 0 :(得分:1)
如果您定位ES6,则已经键入了Promise,如果您定位ES5,则会提供填充程序的类型,以及非本机Promise库的拼贴。所以,你不应该为此编写自己的类型定义。在构建promise时,这是您需要编写的唯一代码:
new Promise<TypeOfResult>((resolve, reject) => {
// do yar thing
})
TypeScript会推断resolve
和reject
的类型,因此明确指定其类型是多余的,不必要的详细。