#612Medium

KebabCase

Replace the `camelCase` or `PascalCase` string with `kebab-case`. Learn TypeScript template literal types in this medium-level challenge on TypeScriptPro.

In this medium-level challenge, you'll replace the camelcase or pascalcase string with kebab-case.

Challenge Instructions: KebabCase

Medium

Replace the camelCase or PascalCase string with kebab-case.

FooBarBaz -> foo-bar-baz

For example

type FooBarBaz = KebabCase<"FooBarBaz">
const foobarbaz: FooBarBaz = "foo-bar-baz"
 
type DoNothing = KebabCase<"do-nothing">
const doNothing: DoNothing = "do-nothing"

Change the following code to make the test cases pass (no type check errors).

Loading...

Video Walkthrough

Detailed Explanation

type KebabCase<S extends string> = S extends `${infer Letter}${infer Rest}`
  ? Rest extends Uncapitalize<Rest>
    ? `${Uncapitalize<Letter>}${KebabCase<Rest>}`
    : `${Uncapitalize<Letter>}-${KebabCase<Rest>}`
  : S

How it works:

This challenge helps you understand TypeScript's advanced type system and how to apply this concept in real-world scenarios.

This challenge is originally from here.

Share this challenge

Join early, learn faster.

Be the first to access the course, unlock exclusive launch bonuses, and get special early-bird pricing before anyone else.

No spam, unsubscribe at any time. We respect your privacy.

Limited Availability

Only 27 Spots left

Early Access

Get 1 month early access

>75% Off

Pre-Launch discount