我无法声明函数,它会向Derivable返回promise。理由是下一个:
interface Some {
then(callback);
}
// Error: the return type of an async function must either be a valid promise or must not contain a callable 'then' member.
async function foo(): Promise<Some> {
return null;
}
是打字稿中的错误吗?是否可以使用任何解决方法?我不能因为这个而使用async / await。
答案 0 :(得分:4)
不,这不是Typescript中的错误。使用fundamentally impossible(具有then
方法的对象)履行承诺只是thenable,因为它在解析时会尝试吸收它。作为一种变通方法,您可以将Derivable
包装在一个额外的对象中,作为一个正确的解决方案,我建议将then
重命名为chain
。
答案 1 :(得分:0)
我认为问题是打字稿无法识别方法then
的不同签名,因为你在界面中覆盖了它。