/** * @package * @param obj * @param name - name of the method or field to override * @param implementation */ export function override(obj: T, name: K, implementation: T[K]) { return new Proxy(obj, { get(o: T, prop: string | number) { return prop === name ? implementation : obj[prop]; }, }); }