Open kscory opened 5 months ago
type KebabCase<S extends string> =S extends `${infer F}${infer Rest}` ?
Rest extends Uncapitalize<Rest> ?
`${Uncapitalize<F>}${KebabCase<Rest>}`:
`${Uncapitalize<F>}-${KebabCase<Rest>}`
:S
미리 대소문자 판단을 한 후 집어넣음
type UpperAlphabet = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' ;
type KebabCase<S> = S extends `${infer F}${infer R}`
? R extends `${UpperAlphabet}${string}`
? `${Lowercase<F>}-${KebabCase<R>}`
: `${Lowercase<F>}${KebabCase<R>}`
: S
type KebabCase<S extends string> =S extends `${infer F}${infer Rest}` ? Rest extends Uncapitalize<Rest> ? `${Uncapitalize<F>}${KebabCase<Rest>}`: `${Uncapitalize<F>}-${KebabCase<Rest>}` :S
미리 대소문자 판단을 한 후 집어넣음
이런 삽질했네요...
type CapitalAlphabet = 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' ;
type KebabCase<S> = S extends `${infer K}${infer U}`
? U extends `${CapitalAlphabet}${string}`
? `${Lowercase<K>}-${KebabCase<U>}`
: `${Lowercase<K>}${KebabCase<U>}`
: S;
답안을 작성해주세요.