FunctionKeys
FunctionKeys
@example
type MixedProps = {name: string; setName: (name: string) => void; someKeys?: string; someFn?: (...args: any) => any;};
// Expect: "setName | someFn"
type Keys = FunctionKeys<MixedProps>;
type FunctionKeys<T extends object> = [K in keyof T]-?: NonUndefined<T[K]> extends Function ? K : never[keyof T];