import BaseUIElement from "../BaseUIElement"; export default class Lazy extends BaseUIElement { private readonly _f: () => BaseUIElement; constructor(f: () => BaseUIElement) { super(); this._f = f; } protected InnerConstructElement(): HTMLElement { // The caching of the BaseUIElement will guarantee that _f will only be called once return this._f().ConstructElement(); } }