Typescript Foundations / Utility Types

Required

🔒 Required<T>

Required<T> is a built-in utility type that makes all properties of a type required.

It is useful when you have a type with optional properties but, in a particular situation, you want every property to be provided.

🔹 Example

type User = {
  name?: string;
  age?: number;
  email?: string;
};

const user: Required<User> = {
  name: "Bhaskar",
  age: 25,
  email: "bhaskar@example.com"
};

Without Required<User>, these properties are optional:

const user: User = {
  name: "Bhaskar"
}; // ✅

But with Required<User>:

const user: Required<User> = {
  name: "Bhaskar"
}; // ❌ Error

All properties must be provided.

💡 Remember

Required<T> → Makes every property in T required.