Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Interfaces vs Type Aliases | Understanding Interfaces
Working with Interfaces and Generics in TypeScript

bookInterfaces vs Type Aliases

When working in TypeScript, you have two main ways to describe the shape of objects: interfaces and type aliases. While both can be used to define the structure of data, there are important differences that influence which one you should choose for a given situation. A type alias uses the type keyword and can represent not only object shapes, but also primitives, unions, intersections, and more. In contrast, an interface is specifically designed to describe the structure of objects and is more focused on object-oriented patterns.

1234567891011121314151617
// Using an interface to define a shape interface User { id: number; name: string; email: string; } // Using a type alias to define the same shape type UserType = { id: number; name: string; email: string; }; // Example usage const alice: User = { id: 1, name: "Alice", email: "alice@example.com" }; const bob: UserType = { id: 2, name: "Bob", email: "bob@example.com" };
copy

The main differences between interfaces and type aliases become clear as your codebase grows:

  • Extension: interfaces can be extended using the extends keyword, allowing you to build up complex types from simpler ones;
  • Merging: interfaces support declaration merging—you can declare the same interface multiple times and TypeScript will combine their properties. This is useful when working with third-party libraries or large codebases;
  • Use cases: type aliases are more flexible in the types they can represent, including unions, intersections, and primitives—not just objects. They do not support declaration merging, and while you can combine types using intersections (&), this approach lacks some of the expressive power and clarity of interface extension.
Note
Note

Choose interfaces to describe the shape of objects, especially if you anticipate needing to extend or merge them. Use type aliases to represent more complex or varied types, such as unions or intersections, or when working with primitives alongside object shapes.

question mark

Which scenario is a strong reason to prefer using an interface over a type alias in TypeScript

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

Can you explain when I should use an interface versus a type alias?

What are some examples where declaration merging is useful?

Can you show how to extend an interface in TypeScript?

Awesome!

Completion rate improved to 9.09

bookInterfaces vs Type Aliases

Glissez pour afficher le menu

When working in TypeScript, you have two main ways to describe the shape of objects: interfaces and type aliases. While both can be used to define the structure of data, there are important differences that influence which one you should choose for a given situation. A type alias uses the type keyword and can represent not only object shapes, but also primitives, unions, intersections, and more. In contrast, an interface is specifically designed to describe the structure of objects and is more focused on object-oriented patterns.

1234567891011121314151617
// Using an interface to define a shape interface User { id: number; name: string; email: string; } // Using a type alias to define the same shape type UserType = { id: number; name: string; email: string; }; // Example usage const alice: User = { id: 1, name: "Alice", email: "alice@example.com" }; const bob: UserType = { id: 2, name: "Bob", email: "bob@example.com" };
copy

The main differences between interfaces and type aliases become clear as your codebase grows:

  • Extension: interfaces can be extended using the extends keyword, allowing you to build up complex types from simpler ones;
  • Merging: interfaces support declaration merging—you can declare the same interface multiple times and TypeScript will combine their properties. This is useful when working with third-party libraries or large codebases;
  • Use cases: type aliases are more flexible in the types they can represent, including unions, intersections, and primitives—not just objects. They do not support declaration merging, and while you can combine types using intersections (&), this approach lacks some of the expressive power and clarity of interface extension.
Note
Note

Choose interfaces to describe the shape of objects, especially if you anticipate needing to extend or merge them. Use type aliases to represent more complex or varied types, such as unions or intersections, or when working with primitives alongside object shapes.

question mark

Which scenario is a strong reason to prefer using an interface over a type alias in TypeScript

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 4
some-alt