export const FUNCTION = "function"; export const isFunction = (val: unknown): val is Function => typeof val === FUNCTION; export type FunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? K : never; }[keyof T]; export type FunctionProperties = Pick>; export type NonFunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? never : K; }[keyof T]; export type NonFunctionProperties = Pick>;