runtime.boot

Full Stack Systems
Production Mindset

CodeWithMihir

Engineering thoughtful products from interface to infrastructure.

CodeWithMihir

TypeScript Tutorial

TypeScript Partial Utility Type Explained

Learn how the Partial utility type works in TypeScript, including optional object properties, update functions, and practical examples.

Welcome back! I am Mihir, and in this lesson we will learn the Partial utility type in TypeScript.

Partial<T> makes every property in T optional.


Basic Partial Example

type User = {
  id: number;
  name: string;
  email: string;
};

type PartialUser = Partial<User>;

PartialUser behaves like:

type PartialUser = {
  id?: number;
  name?: string;
  email?: string;
};

Using Partial

const update: Partial<User> = {
  name: "Mihir Soni",
};

This is valid because all properties are optional.

You can provide one property, many properties, or no properties.


Update Function Example

function updateUser(user: User, updates: Partial<User>): User {
  return {
    ...user,
    ...updates,
  };
}

Usage:

const user: User = {
  id: 1,
  name: "Mihir",
  email: "mihir@example.com",
};

const updatedUser = updateUser(user, {
  email: "new@example.com",
});

Partial Does Not Change Value Types

const update: Partial<User> = {
  id: "one",
};

This is invalid because id is still a number.

Partial only makes properties optional.

It does not change their types.


Useful for Forms

type ProfileFormDraft = Partial<{
  firstName: string;
  lastName: string;
  bio: string;
}>;

const draft: ProfileFormDraft = {
  firstName: "Mihir",
};

Drafts often start incomplete, so Partial fits well.


Quick Recap

  • Partial<T> makes every property optional.
  • It is useful for updates, drafts, and patch objects.
  • It does not change property value types.
  • It works best with object types.
  • It helps avoid writing duplicate optional versions of the same type.

Next up, we will learn Required →.