Microsoft/TypeScript

Uncapitalize seems to not working within a type helper

Offen

#52.102 geöffnet am 04.01.2023

 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)TypeScript (13.395 Forks)batch import
BugDomain: Literal TypesHelp Wanted

Repository-Metriken

Stars
 (108.860 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

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

Contributor Guide