ghaiklor / type-challenges-solutions

Solutions for the collection of TypeScript type challenges with explanations
https://ghaiklor.github.io/type-challenges-solutions/
Creative Commons Attribution 4.0 International
470 stars 56 forks source link

type-challenges-solutions/en/medium-camelcase #192

Open utterances-bot opened 2 years ago

utterances-bot commented 2 years ago

CamelCase

This project is aimed at helping you better understand how the type system works, writing your own utilities, or just having fun with the challenges.

https://ghaiklor.github.io/type-challenges-solutions/en/medium-camelcase.html

DaniGuardiola commented 2 years ago

Two notes here:

type CamelCase<S> = S extends `${infer H}-${infer T}`
  ? `${H}${Capitalize<CamelCase<T>>}`
  : S;

This will handle all cases better. However, as you note in your solution, the tests won't allow this lol.


Edit: I just realized that this is literally the same as one of your intermediate steps. My bad heh.