Microsoft/TypeScript
Vedi su GitHubUncapitalize seems to not working within a type helper
Open
#52.102 aperta il 4 gen 2023
BugDomain: Literal TypesHelp Wanted
Metriche repository
- Star
- (48.455 star)
- Metriche merge PR
- (Merge medio 6g 17h) (9 PR mergiate in 30 g)
Descrizione
Bug Report
🔎 Search Terms
Uncapitalize
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about Uncapitalize
⏯ Playground Link
Playground link with relevant code
💻 Code
type CamelCase1<
S extends string,
L extends string = Lowercase<S>,
Res extends string = ""
> = L extends ""
? Uncapitalize<Res>
: L extends `${infer H}_${infer T}`
? CamelCase1<never, T, `${Res}${Capitalize<H>}`>
: CamelCase1<never, "", `${Res}${Capitalize<L>}`>;
type test1 = CamelCase2<"FOOBAR">
// ^? type test1 = "Foobar"
type CamelCase2<
S extends string,
L extends string = Lowercase<S>,
Res extends string = ""
> = L extends ""
? Res
: L extends `${infer H}_${infer T}`
? CamelCase2<never, T, `${Res}${Capitalize<H>}`>
: CamelCase2<never, "", `${Res}${Capitalize<L>}`>;
type test2 = Uncapitalize<CamelCase2<"FOOBAR">>
// ^? type test2 = "foobar"
🙁 Actual behavior
First letter is uppercase
🙂 Expected behavior
First letter should be lowercase