在.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;
}
}
我自己实施它让我很好奇:
Lazy<T>
,是否存在根本性的错误?