Skip to content

TypeScript Utility Types API

TypeScript built-in utility types for transforming and combining types.

1 class · 11 methods

Utility Types

11 methods

Global utility types provided by TypeScript's lib.es5.d.ts.

Partial<T>

Make all properties of T optional.

Parameters

NameTypeDescription
TtypeSource type.

Returns

type

Example

typescript
interface User { id: number; name: string; }
type UserPatch = Partial<User>;
// { id?: number; name?: string }
const patch: UserPatch = { name: 'Alice' };
Required<T>

Make all properties of T required (removes ? modifiers).

Parameters

NameTypeDescription
TtypeSource type.

Returns

type

Example

typescript
interface Props { a?: number; b?: string; }
type RequiredProps = Required<Props>;
// { a: number; b: string }
Readonly<T>

Make all properties of T readonly.

Parameters

NameTypeDescription
TtypeSource type.

Returns

type

Example

typescript
interface Config { url: string; }
type FrozenConfig = Readonly<Config>;
const c: FrozenConfig = { url: '/' };
c.url = '/x';  // Error: readonly
Record<K, V>

Construct an object type with keys K and values V.

Parameters

NameTypeDescription
KtypeKeys (string | number | symbol union).
VtypeValue type.

Returns

type

Example

typescript
type Role = 'admin' | 'user';
const perms: Record<Role, string[]> = {
  admin: ['read', 'write'],
  user: ['read'],
};
Pick<T, K>

Pick only the keys K from T.

Parameters

NameTypeDescription
TtypeSource type.
KtypeKeys to pick (union of keyof T).

Returns

type

Example

typescript
interface User { id: number; name: string; email: string; }
type UserSummary = Pick<User, 'id' | 'name'>;
// { id: number; name: string }
Omit<T, K>

Construct a type with all properties of T except those in K.

Parameters

NameTypeDescription
TtypeSource type.
KtypeKeys to omit.

Returns

type

Example

typescript
interface User { id: number; name: string; email: string; }
type CreateUserDTO = Omit<User, 'id'>;
// { name: string; email: string }
Exclude<T, U>

Exclude from union T all types assignable to U.

Parameters

NameTypeDescription
TtypeSource union.
UtypeTypes to exclude.

Returns

type

Example

typescript
type T = string | number | boolean;
type N = Exclude<T, boolean>;
// string | number
Extract<T, U>

Extract from union T all types assignable to U.

Parameters

NameTypeDescription
TtypeSource union.
UtypeTypes to extract.

Returns

type

Example

typescript
type T = string | number | boolean;
type S = Extract<T, string>;
// string
NonNullable<T>

Exclude null and undefined from T.

Parameters

NameTypeDescription
TtypeSource type.

Returns

type

Example

typescript
type T = string | null | undefined;
type NN = NonNullable<T>;
// string
ReturnType<T>

Return the return type of function type T.

Parameters

NameTypeDescription
TtypeFunction type.

Returns

type

Example

typescript
function getUser() { return { id: 1, name: 'a' }; }
type User = ReturnType<typeof getUser>;
// { id: number; name: string }
Parameters<T>

Return a tuple type of the parameter types of function type T.

Parameters

NameTypeDescription
TtypeFunction type.

Returns

type

Example

typescript
function add(a: number, b: number) { return a + b; }
type AddArgs = Parameters<typeof add>;
// [number, number]