Difference between interfaces and classes in TypeScript

In this article, we will see what is the Difference between “interface” and “Classes” in TypeScript.

Interface: Interface is the virtual structure that is used for type-checking. In TypeScript we use interface keyword to create the new interface with identity. It create the structure for the same datatype. Interface is the structure which define the properties and method for object with name and type.

Syntax:

interface New_Interface{ // This is interface Body }

Features:

  • It has loose coupling.
  • It supports multiple Inheritance.

Example 1:

Javascript




// Interface for Class
interface ForClass {
    readonly var1:string;               
}
  
let newclass: ForClass = {var1:"Interface"};
console.log(newclass);


Output:

{ var1: 'Interface' }

Example 2:

Javascript




// Interface for Object with extends function 
interface ForObj {
    First: string
}
  
interface forNewObj extends ForObj {
    Second: number
}
  
let newArray: forNewObj = {
    First: "Interface for Object",
    Second: 2
};
  
console.log(newArray);


Output:

{ First: 'Interface for Object', Second: 2 }

Classes: They are the skeleton of objects with its use we implement objects. In TypeScript, we use class Keyword to create the constructor for the object. It can have properties, methods and variables.

Syntax:

class Beginner {
    // Class property and methods
    // are created here
}

Features:

  • In classes it support member visibility.
  • It supports member overriding.
  • it supports inheritance.

Example:

Javascript




class Beginner {      
    name : string ;
    articles: number ; 
    cp_problems: number;
  
    // Constructor of class
    constructor(name:string, articles: number, cp_problems: number) {
        this.name = name;
        this.articles = articles;
        this.cp_problems = cp_problems;
    }
                   
    // About object 
    About() : void {
        console.log("Name of Beginner: " + this.name );
        console.log("No. of articles by Beginner: "
            + this.articles);
        console.log("No. of cp problems sol by Beginner: "
            + this.cp_problems)
    }
}
var geek1 = new Beginner("Abhinav", 87, 560);
geek1.About();


Output:

Name of Beginner: Abhinav
No. of articles by Beginner: 87
No. of cp problems sol by Beginner: 560

The difference between interface and classes are below:

Interface

Classes

We can Create the interface with the use of the interface keyword.

i.e interface Interface_Name{   \\ Interface Body }

We can create the class with class keyword.

i.e class Class_Name{ \\ Class Body }

The interfaceblueprint is mainly the Type structure of object. i.e It is object with only defining the type of parameter inside. Class is the blueprint of the object i.e.the create purposes class is how we implement the object of our code. 
It is used for type checking purpose. Use of interface if TypeScript language is mainly focused on the checking the type of parameters in object. Classes in Types script is used to made the object for something. It is used for implementing the object.
We cannot create the instance of interface with new in typescript. It means that we cannot create the copy of instance in Typescript. We can create a new instance of the class in TypeScript. It means that we can create the copy of class with new keyword.
Interface is virtual structure. Means it only present in TypeScript code not in TypeScript compiled JavaScript code.  It always exists in code after the compilation of TypeScript to JavaScript. 


Contact Us