Skip to main content

Exclude types using Omit and Exclude

You can exclude types from existing types using Omit and Exclude.

Omit​

The Omit utility type creates a new type by copying an existing type but leaving out specific keys.

Syntax: Omit<Type, Keys>

Example:

type Person = {
name: string;
age: number;
address: string;
}

type PersonWithoutAddress = Omit<Person, 'address'>;
// PersonWithoutAddress: { name: string; age: number; }

Omit is particularly useful when you want to create a new type based on an existing one, but without certain properties.

Exclude​

The Exclude utility type creates a new type by excluding from Type all union members that are assignable to ExcludedUnion.

Syntax: Exclude<Type, ExcludedUnion>

Example:

type Direction = "top" | "right" | "bottom" | "left";
type SidewaysDirection = Exclude<Direction, "top" | "bottom">;
// SidewaysDirection: "right" | "left"

Exclude is helpful when working with union types and you want to remove certain types from the union.

Exercise 3.1​

Practice using Omit and Exclude to create new types by excluding specific properties or union members.