0
0
Typescriptprogramming~5 mins

Partial type in Typescript

Choose your learning style9 modes available
Introduction

The Partial type helps you make all properties of an object optional. This is useful when you want to update or create objects without needing every detail.

When updating only some fields of a user profile without changing the whole profile.
When creating a function that accepts an object but only requires some properties.
When working with forms where users fill in some fields but not all.
When you want to build objects step-by-step, adding properties later.
Syntax
Typescript
Partial<Type>

Type is the original object type you want to make partial.

The result is a new type where all properties are optional.

Examples
Here, partialUser only has the name property. The age is optional because of Partial.
Typescript
interface User {
  name: string;
  age: number;
}

const partialUser: Partial<User> = { name: "Alice" };
The function accepts an object that can have any or none of the Settings properties.
Typescript
type Settings = {
  darkMode: boolean;
  fontSize: number;
};

function updateSettings(newSettings: Partial<Settings>) {
  // update only provided settings
}
Sample Program

This program shows how to update only the price of a product using Partial. The updateProduct function merges the original product with the updates.

Typescript
interface Product {
  id: number;
  name: string;
  price: number;
}

function updateProduct(product: Product, updates: Partial<Product>): Product {
  return { ...product, ...updates };
}

const originalProduct: Product = { id: 1, name: "Book", price: 20 };
const updatedProduct = updateProduct(originalProduct, { price: 15 });

console.log(updatedProduct);
OutputSuccess
Important Notes

Partial only changes the optionality of properties; it does not change their types.

You can combine Partial with other utility types for more complex scenarios.

Summary

Partial makes all properties of a type optional.

It is useful for updates or partial data input.

Use it to write flexible and safe code when full data is not always available.