@voxpelli/typed-utils
Version:
My personal (type-enabled) utils / helpers
26 lines (24 loc) • 643 B
TypeScript
export type LiteralTypeOf<T> =
T extends string ? 'string' :
T extends number ? 'number' :
T extends bigint ? 'bigint' :
T extends boolean ? 'boolean' :
T extends symbol ? 'symbol' :
T extends undefined ? 'undefined' :
T extends null ? 'null' :
T extends any[] ? 'array' :
T extends (...args: any[]) => any ? 'function' :
T extends object ? 'object' :
never;
export type LiteralTypes = {
'string': string,
'number': number,
'bigint': bigint,
'boolean': boolean,
'symbol': symbol,
'undefined': undefined,
'null': null,
'array': unknown[],
'object': object,
'function': (...args: any[]) => unknown,
};