Typescript 类型脚本编译器可以';无法从承诺解析调用推断类型
使用以下代码段时,编译器无法识别Typescript 类型脚本编译器可以';无法从承诺解析调用推断类型,typescript,Typescript,使用以下代码段时,编译器无法识别item1的类型,它将分配为未知(请参阅将鼠标悬停在 我错过什么了吗 为什么typescript编译器不能推断该类型将是字符串 const getItem=()=> 新承诺((决议)=>{ 返回解析(“标题”); }); (异步函数(){ const item1=等待getItem(); const item2=等待getItem(); })(); 问题在于无法从传递给resolve方法的类型推断出承诺的类型。resolve方法从传递给承诺构造函数的泛型类型获取其
item1
的类型,它将分配为未知(请参阅将鼠标悬停在
const getItem=()=>
新承诺((决议)=>{
返回解析(“标题”);
});
(异步函数(){
const item1=等待getItem();
const item2=等待getItem();
})();
问题在于无法从传递给resolve方法的类型推断出承诺的类型。resolve方法从传递给承诺构造函数的泛型类型获取其类型,而不是相反。在这种情况下,您不需要使用带有resolve的return
您可以通过以下两种方式之一解决此问题
string
作为泛型类型参数传递。使用Promise((resolve)=>{…
,这将告诉typescript您希望字符串传递给resolve
函数。如果您尝试用其他方法调用resolve
,则会看到类型错误Promise.resolve('a title');
的构造。这样,可以推断泛型类型参数问题是无法从传递给resolve方法的类型推断承诺的类型。resolve方法从传递给承诺构造函数的泛型类型获取其类型,而不是相反。在这种情况下,您不需要使用带有resolve的
return
您可以通过以下两种方式之一解决此问题
string
作为泛型类型参数传递。使用Promise((resolve)=>{…
,这将告诉typescript您希望字符串传递给resolve
函数。如果您尝试用其他方法调用resolve
,则会看到类型错误Promise.resolve('a title');
的构造。这样,可以推断泛型类型参数