Remove the key starting with `_` from given type `T`. Master advanced TypeScript type manipulation in this medium-level challenge on TypeScriptPro.
In this medium-level challenge, you'll implement a PublicType utility that removes all properties whose keys start with an underscore _, exposing only the "public" members of an object type.
Remove the key starting with _ from given type T.
Change the following code to make the test cases pass (no type check errors).
type PublicType<T extends object> = {
[K in keyof T as K extends `_${string}` ? never : K]: T[K]
}How it works:
K in T.as clause performs key remapping using a template literal pattern: K extends \_$`` checks if the key starts with an underscore._, it is remapped to never, effectively removing it from the resulting type.readonly, and optionality._ (like { g: '_g' }) is kept, since the filter applies to the key name, not the value.This challenge helps you understand template literal types combined with key remapping, and how to apply this pattern for convention-based type filtering 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