export type Computable = { [K in keyof T]: | ((this: T) => T[K]) | (NonNullable extends (..._: infer A) => infer R ? (this: T, ..._: A) => R : T[K]); };