Typescript Foundations / Utility Types

NonNullable

🧹 NonNullable<T>

NonNullable<T> creates a new type by removing null and undefined from a type.

🔹 Example

type User = {
  name: string;
} | null | undefined;

type ValidUser = NonNullable<User>;

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

Now ValidUser is:

{
  name: string;
}

So these are not allowed:

const user: ValidUser = null;      // ❌
const user: ValidUser = undefined; // ❌

💡 Common Use

NonNullable is useful when you have a value that might be null or undefined, but you need a type that guarantees a valid value.

Remember: NonNullable<T> → Removes null and undefined from T.