Open In App

TypeScript Object Interfaces vs. Intersections

Last Updated : 06 Nov, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

TypeScript offers several features when it comes to defining complex data structures. In TypeScript, Object Interface and Intersections are two different features that serve different purposes when it comes to defining complex data structures.

Object Interfaces

  • Object Interfaces are used to define the shape or structure of an object.
  • They define the properties with the types that an object should contain.
  • We use the ‘interface‘ keyword to declare an object interface followed by the interface name and its properties.
  • They can be implemented by other interfaces and classes, promoting code reusability and maintainability.

Example: This example shows the use of the TypeScript Interfaces.

Javascript




interface Employee {
    eid: string,
    name: string
}
const emp: Employee = {
    eid: "E54321",
    name: "Ravi"
};
  
console.log(emp);


Output:

{ eid: 'E54321', name: 'Ravi' }

Intersections

  • Intersections allow us to combine multiple types into a single type.
  • We use the ‘&‘ operator to merge all properties and methods of each type involved.
  • Intersections are used to compose multiple types by merging existing types or interfaces.

Example: This example shows the use of TypeScript intersections

Javascript




interface Employee {
    eid: string,
    name: string
}
interface Address {
    street: string;
    city: string;
}
  
type EmployeeWithAddress = 
    Employee & Address;
  
const employeeWithAddress: 
    EmployeeWithAddress = {
    eid: "E54321",
    name: "Bob",
    street: "123 BHU Lanka",
    city: "Varanasi",
};
  
console.log(employeeWithAddress);


Output:

{
eid: 'E54321',
name: 'Bob',
street: '123 BHU Lanka',
city: 'Varanasi'
}

Object Interfaces vs. Intersections:

Feature

Interface

Intersection

Purpose

Define shape of an object.

Combines multiple types into single type.

Declaration Syntax

Uses ‘interface’ keyword.

Uses ‘&’ Operator.

Structure

Defines properties with their types.

Merges properties and methods from multiple types.

Extensibility

Can be extended and implemented by other interfaces or classes.

Cannot be extended.

Composition

Support extending interface with help of inheritance.

Combines multiple type or interfaces without inheritance.

Object Instances

Used to declare objects that conform to the interface.

Not used directly to declare objects.

Reusability

Objects are reusable due to inheritance.

Used to create advance composite types.

Use Cases

Defining individual object structures.

Used when we want to create a new type that has characteristics of multiple types.

Conclusion: TypeScript object interfaces are used to define the structure of individual objects, while intersections combine multiple types to create new composite types. In many cases, we might use both object interfaces and intersections depending on the specific requirements of our applications. Understanding when and how to use these powerful features is essential for building robust applications using TypeScript.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads