TypeScript 7 reference · Utility Types

TypeScript Required<Type> Utility Type

Make every property of a type required, removing the ? from optional properties. The opposite of Partial.

TypeScript 7 Since 2.1

Create a free account to save this page, take notes and track your progress. Sign in

Syntax

Required<Type>

Parameters

ParameterDescription
Type The object type to transform.

Return value

A type with the same properties, all required.

Examples

Fill in defaultsTry it yourself
interface Options {
  retries?: number;
  timeout?: number;
}
function withDefaults(o: Options): Required<Options> {
  return { retries: o.retries ?? 3, timeout: o.timeout ?? 1000 };
}
console.log(withDefaults({ timeout: 500 }));

Output

{ retries: 3, timeout: 500 }
Missing properties are errorsTry it yourself
interface Options {
  retries?: number;
}
// @ts-expect-error: retries is required now
const o: Required<Options> = {};
console.log("Required<Options> needs every property");

Output

Required<Options> needs every property

Version history

VersionChange
TypeScript 2.1Added

Was this page helpful?