【问题标题】:Typescript Generator Property / Getter打字稿生成器属性/吸气剂
【发布时间】:2017-05-12 20:42:37
【问题描述】:
在打字稿中制作生成器方法很简单:
class Foo {
*values() { yield 10 }
}
但是我想做一个生成器property,像这样:
class Foo {
get *values() { yield 10 }
}
但这似乎是无效的。我似乎找不到对这个问题或解决方法的任何引用(除了明确使用 Object.defineProperty 的明显情况,这会很糟糕,因为它是无类型的)。我错过了什么吗?这支持吗?如果没有,会吗?
【问题讨论】:
标签:
typescript
properties
generator
getter
【解决方案1】:
您可以使用支持方法来伪造它。
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 }
*/