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

贡献者指南