export type MaybeFunction = T | ((...args: P) => T); export function maybeFunction(v: MaybeFunction, ...args: P): T { // https://github.com/microsoft/TypeScript/issues/37663#issuecomment-759728342 if (v instanceof Function) { return v(...args); } return v; }