export class Getter { public static bind(getter: Getter, name: string, ref: Record) { getter.#name = name; getter.#ref = new WeakRef(ref); } #name: string; #ref: WeakRef>; public get value(): T { return this.#ref.deref()?.[this.#name]; } }