Skip to content

Instantly share code, notes, and snippets.

@ankitr
Created April 27, 2022 02:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ankitr/42700384e970fbb0d36d66a0bd875727 to your computer and use it in GitHub Desktop.
Save ankitr/42700384e970fbb0d36d66a0bd875727 to your computer and use it in GitHub Desktop.
Camel case from snake case TypeScript string literals
const a = 'snake_case';
type CamelCaseFromSnakeCase<Snake extends string> =
Snake extends `${infer First}_${infer Rest}`
? `${First}${Capitalize<CamelCaseFromSnakeCase<Rest>>}`
: Snake;
const b: CamelCaseFromSnakeCase<typeof a> = 'snakeCase';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment