【问题标题】: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 }
    */
    

    【讨论】:

    • 如果只有生成器 lambda,那就更好了。
    猜你喜欢
    • 2021-07-19
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 2019-02-25
    • 2018-04-05
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多