Yon*_*ree 6 getter properties generator typescript
在typescript中创建一个生成器方法很简单:
class Foo {
*values() { yield 10 }
}
Run Code Online (Sandbox Code Playgroud)
但我想创建一个生成器属性,如下所示:
class Foo {
get *values() { yield 10 }
}
Run Code Online (Sandbox Code Playgroud)
但这似乎无效.我似乎无法找到任何对这个问题或变通方法的引用(除了明显使用Object.defineProperty明显,这会很糟糕,因为它将是无类型的).我错过了什么吗?这支持吗?如果没有,会是吗?
您可以使用支持方法来伪造它。
class Gen {
private *_values() {
yield 3;
yield 4;
}
public get values() {
return this._values();
}
}
let g = new Gen();
let v1 = g.values;
let v2 = g.values;
console.log(v1.next());
console.log(v1.next());
console.log(v1.next());
console.log(v2.next());
console.log(v2.next());
console.log(v2.next());
/* stdout
{ value: 3, done: false }
{ value: 4, done: false }
{ value: undefined, done: true }
{ value: 3, done: false }
{ value: 4, done: false }
{ value: undefined, done: true }
*/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
651 次 |
| 最近记录: |