我正在访问从已解决的承诺返回的对象的属性。
return new Promise((resolve) => {
// Get result
resolve(result)
}).then(r => console.log(r.id))
Typescript 编译代码并且代码可以工作,但我的 IDE 抱怨r.id
[ts] 类型“{}”上不存在属性“id”。
处理这个问题的“TypeScript”方法是什么?这个问题似乎有同样的问题,但我无法理解给出的解决方案。这个答案谈论使用接口,但我不确定如何将其应用到then()
的函数Promise
Typescript 将无法判断结果类型Promise
通过使用resolve
,您需要显式指定结果类型作为泛型参数Promise
:
new Promise<{ id: string }>((resolve) => {
// Get result
resolve(result)
}).then(r => console.log(r.id))
您可以更换{ id: string }
任何类型,因为额外的打字稿会检查resolve
以正确的结果类型调用。
Edit我假设而不是// Get result
有一些更复杂的代码需要使用Promise
构造函数。如果你已经知道结果,你可以使用Promse.resolve(result)
正如 @BenjaminGruenbaum 在评论中指出的那样,它将正确输入承诺
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)