在TypeScript中实现Lazy <t>?

时间:2017-03-13 10:19:27

标签: typescript

在.NET中,有Lazy<T>类型,例如对于实现延迟加载和缓存很有用。我不知道TypeScript的等效解决方案,所以我推出了自己的解决方案。

export interface Factory<TResult> { () : TResult; }

export class Lazy<T> {
    factoryOutput : T;
    isValueSet : boolean;

    constructor(private factory : Factory<T>) { }    

    get value() {
        if (!this.isValueSet) {
            this.factoryOutput = this.factory();
            this.isValueSet = true;
        }
        return this.factoryOutput;
    }
}

我自己实施它让我很好奇:

  • 我是否忽略了TypeScript的现有解决方案?
  • 我的理由是想在TypeScript中使用.NET样式Lazy<T>,是否存在根本性的错误?

0 个答案:

没有答案