myo*_*yol 2 lambda anonymous-function promise typescript
我正在访问从已解决的承诺返回的对象的属性。
return new Promise((resolve) => {
// Get result
resolve(result)
}).then(r => console.log(r.id))
Run Code Online (Sandbox Code Playgroud)
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))
Run Code Online (Sandbox Code Playgroud)
您可以替换{ id: string }为任何类型,因为奖励打字稿将检查resolve是否以正确的结果类型进行了调用。
编辑
我假设不是// Get result使用一些更复杂的代码,而需要使用Promise构造函数。如果您已经知道结果,则可以使用Promse.resolve(result)@BenjaminGruenbaum在注释中指出的方式正确键入promise
| 归档时间: |
|
| 查看次数: |
3275 次 |
| 最近记录: |