#2852Medium

OmitByType

From ```T```, pick a set of properties whose type are not assignable to ```U```. Master advanced TypeScript type manipulation in this medium-level challenge on TypeScriptPro.

In this medium-level challenge, you'll build an OmitByType utility that filters out properties from an object type T whose values are assignable to a given type U.

Challenge Instructions: OmitByType

Medium

From T, pick a set of properties whose type are not assignable to U.

For Example

type OmitBoolean = OmitByType<{
name: string
count: number
isReadonly: boolean
isEnable: boolean
}, boolean> // { name: string; count: number }

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

👋 Lifetime-License is leaving on August 10, 2026

Get it now for $29

One-time payment. Lifetime access to all pro challenges.

Loading...

Detailed Explanation

type OmitByType<T, U> = {
  [K in keyof T as T[K] extends U ? never : K]: T[K]
}

How it works:

This challenge helps you understand key remapping in mapped types and how to apply conditional filtering of object properties based on their value types in real-world scenarios.

This challenge is originally from here.

Share this challenge

Learn the Concepts