TypeName: T extends string ? "string" : T extends BigInt ? "bigint" : T extends number ? "number" : T extends boolean ? "boolean" : T extends undefined ? "undefined" : T extends symbol ? "symbol" : T extends Function ? "function" : T extends any[] ? "array" : T extends null ? "null" : "object"
get the stringified type name of a type-parameter.