Car*_*lin 6 yield type-inference generator typescript
在以下代码示例中:
function* gen() {
let v = yield Promise.resolve(0);
return v;
}
Run Code Online (Sandbox Code Playgroud)
v推断的类型是any.我想知道是否有办法让它number根据情境线索推断出不同的类型(比方说).
我知道在这个特定场景中我可以使用async/ await而不是,但我想知道一般情况(当不使用promises时).
不幸的是,Typescript 目前不支持这一点。除了简单地在每个语句上添加类型注释之外,似乎没有什么好的解决方法yield:
function* gen() {
let v: number = yield Promise.resolve(0);
return v;
}
Run Code Online (Sandbox Code Playgroud)
这是一个很难解决的问题,因为yield语句返回的值完全取决于消耗生成器的任何内容的语义。我知道yield Promise.resolve(0)最终会返回一个数字,只是因为我知道 的语义coroutine,但v实际上可以是任何东西。
但希望 Typescript 将添加对将这些关系声明为生成器本身类型的一部分的支持。这是一个相关的 github 问题。
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |