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:
javascript
// 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); |
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:
javascript
// 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); |
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. |
Types are more flexible. | Interface is less flexible when compared to typescript types. |
It uses the “type” keyword for creating new type. | It uses the “interface” keyword for declaring an interface. |
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. |
It does not support the feature of implementing or extending union types in the class. | It supports the implementation and extend feature in typescript. |
One can create an intersection type by combining multiple types into a single type. | One cannot create any new intersection interface. |
It is also used for types such as primitives, unions, and tuples. | It cannot be used with other types of declaration. |
Conclusion- Though both, Typescript types and interface differs in some features but both are almost similar, so one cannot stop using one over the other. The developer can choose which typescript he/she wants to use.