Typescript编译器无法从Promise resolve调用中推断类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typescript编译器无法从Promise resolve调用中推断类型相关的知识,希望对你有一定的参考价值。
在打字稿中,当使用下面的代码片段时,编译器无法识别item1
的类型,它将分配为“ unknown”(请参见将光标悬停在Typescript Playground上的var名称上
- 我想念什么吗?
- 为什么打字稿编译器不能推断该类型将是字符串?
const getItem = () =>
new Promise((resolve) => {
return resolve('a title');
});
(async function() {
const item1 = await getItem();
const item2 = await getItem();
})();
答案
问题在于,无法通过传递给resolve方法的类型来推断Promise的类型。 resolve方法的类型从传递给Promise构造函数的泛型类型获取,而不是相反。同样,在这种情况下,您也不需要使用带有解析的return
。
以上是关于Typescript编译器无法从Promise resolve调用中推断类型的主要内容,如果未能解决你的问题,请参考以下文章
Axios 和 Typescript 给出一个类型的 promise 拒绝错误
Typescript 函数可以将 Promise<any> 作为 Promise<Bar> 返回吗?
使用 Angular Promise 进行 Jasmine 测试无法使用 TypeScript 解决