Implement `StartsWith<T, U>` which takes two exact string types and returns whether `T` starts with `U` Master advanced TypeScript type manipulation in this medium-level challenge on TypeScriptPro.
In this medium-level challenge, you'll implement StartsWith<T, U> which checks whether a string type T begins with a prefix string type U, returning true or false.
Implement StartsWith<T, U> which takes two exact string types and returns whether T starts with U
For example
type a = StartsWith<'abc', 'ac'> // expected to be false
type b = StartsWith<'abc', 'ab'> // expected to be true
type c = StartsWith<'abc', 'abcd'> // expected to be falseChange the following code to make the test cases pass (no type check errors).
type StartsWith<T extends string, U extends string> =
T extends `${U}${infer _Rest}` ? true : falseHow it works:
${U}${infer _Rest} to check if T can be decomposed into the prefix U followed by any remaining string _Rest.T matches this pattern, the string starts with U and we return true.T does not match, we return false. This handles cases where U is longer than T or where the characters simply do not match.U is an empty string "", the pattern ${""}{infer _Rest} always matches any string, correctly returning true.This challenge helps you understand template literal type pattern matching and how to apply this concept in real-world scenarios.
This challenge is originally from here.
Be the first to access the course, unlock exclusive launch bonuses, and get special early-bird pricing before anyone else.
Only 27 Spots left
Get 1 month early access
Pre-Launch discount