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() } }