#1367Medium

Remove Index Signature

Implement `RemoveIndexSignature<T>` , exclude the index signature from object types. Master advanced TypeScript type manipulation in this medium-level challenge on TypeScriptPro.

In this medium-level challenge, you'll implement RemoveIndexSignature<T> to exclude index signatures from object types, keeping only explicitly declared properties.

Challenge Instructions: Remove Index Signature

Medium

Implement RemoveIndexSignature<T> , exclude the index signature from object types.

For example:

type Foo = {
[key: string]: any
foo(): void
}
 
type A = RemoveIndexSignature<Foo> // expected { foo(): void }

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

Loading...

Detailed Explanation

type RemoveIndexSignature<T> = {
  [K in keyof T as string extends K
    ? never
    : number extends K
      ? never
      : symbol extends K
        ? never
        : K]: T[K]
}

How it works:

This challenge helps you understand mapped type key remapping and how to distinguish between index signatures and explicitly declared properties in real-world scenarios.

This challenge is originally from here.

Share this challenge

Learn the Concepts

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