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
Syntax
Required<Type>
Parameters
| Parameter | Description |
|---|---|
Type |
The object type to transform. |
Return value
A type with the same properties, all required.
Examples
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 }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
| Version | Change |
|---|---|
| TypeScript 2.1 | Added |
Related
Partial<Type>· Make every property of a type optional. Useful for update functions that accept only the fields that change.NonNullable<Type>· Remove null and undefined from a type, for values you've already checked or that can never be missing.- TypeScript Utility Types · tutorial