Microsoft/TypeScript

Uncapitalize seems to not working within a type helper

開放

#52,102 建立於 2023年1月4日

 (2 則留言) (0 個反應) (0 位負責人)TypeScript (13,395 個分叉)batch import
BugDomain: Literal TypesHelp Wanted

倉庫指標

星標
 (108,860 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

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

貢獻者指南