/** * CapsToCamel<'CARD', '', true> * -> '' + 'card' * * CapsToCamel<'VIRTUAL_ACCOUNT', '', true> * -> CapsToCamel<'ACCOUNT', '' + 'virtual', false> * -> 'virtual' + 'Account' */ type CapsToCamel = PayMethod extends `${infer Front}_${infer Rear}` ? CapsToCamel : Capitalize>}`, false> : `${Result}${First extends true ? Lowercase : Capitalize>}`; type ValueOf = Obj[keyof Obj]; type OneOnly = { [key in Exclude]+?: undefined; } & Pick; type OneOfByKey = { [key in keyof Obj]: OneOnly; }; type OneOfType = ValueOf>; type Prettify = { [K in keyof T]: T[K]; } & {}; export { CapsToCamel, OneOfType, Prettify };