What is the difference between interface and type in TypeScript ?

Both the methods Type and the Interface are used to describe the structure of the objects in TypeScript. But holds some specific features that will be helpful according to the situation, choosing between them and totally depends on the developer.

Type in TypeScript: The Type System in TypeScript portrays the different data types that are supported by the language. It is divided into three major sections that are Any Type, Built-In Type, and User-Defined Type. The Type System in TypeScript is responsible for checking the data type of any value taken before it can be provided as an input to the program.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Creating a type
type Geeks {
  name: string;
  age: number
}
  
type Geeks {
  email: string;
}
  
// Using the merged type
const gfg: Geeks = {
  name: " kgowda",
  age: 20,
  email: " kgowda@gmail.com"
};
  
console.log(gfg);

chevron_right


Output:

"Duplicate identifier 'Geeks'" error.

Interface in TypeScript: An Interface in TypeScript is a syntactical obligation that all entities must follow. It can only contain the declaration of the members and is responsible for defining the properties, methods, and events. In a way, it is responsible for defining a standard structure that the derived classes will have to follow.



Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Creating a interface
interface Geeks {
  name: string;
  age: number
}
  
interface Geeks {
  email: string;
}
  
// Using the merged interface
const gfg: Geeks = {
  name: " kgowda",
  age: 20,
  email: " kgowda@gmail.com"
};
  
console.log(gfg);

chevron_right


Output

name: " kgowda", age: 20, email: " kgowda@gmail.com"

Difference between Type and Interface in TypeScript:

Type Interface
It is a collection of data types. It is a form of syntax.
It supports the creation of a new name for a type. It provides a way to define the entities.
It has less comparatively less capabilities. It has comparatively more capabilities.
It does not support the use of an object. It supports the use of an object.
Multiple merged declarations cannot be used. Multiple merged declarations can be used.
Two types having the same name raise an exception. Two interfaces having the same name get merged.
It does not have implementation purposes. It has an implementation purpose.

full-stack-img




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : yoyalamber