Разница между интерфейсами и классами в TypeScript

Опубликовано: 14 Августа, 2022

В этой статье мы увидим, в чем разница между «интерфейсом» и «классами» в TypeScript.

Интерфейс: Интерфейс — это виртуальная структура, используемая для проверки типов. В TypeScript мы используем ключевое слово interface для создания нового интерфейса с идентификатором. Он создает структуру для того же типа данных. Интерфейс — это структура, которая определяет свойства и метод для объекта с именем и типом.

Синтаксис:

interface New_Interface{ // This is interface Body }

Функции:

  • Имеет слабую связь.
  • Он поддерживает множественное наследование.

Пример 1:

Javascript




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

Выход:

{ var1: "Interface" }

Пример 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);

Выход:

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

Классы: они являются скелетом объектов, с его использованием мы реализуем объекты. В TypeScript мы используем класс Keyword для создания конструктора объекта. Он может иметь свойства, методы и переменные.

Синтаксис:

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

Функции:

  • В классах он поддерживает видимость членов.
  • Он поддерживает переопределение членов.
  • он поддерживает наследование.

Пример 1:

Javascript




const Table_Object = {
                      
    // field of class
    Size : 32,
                   
    // Collection field 
    contents : ["Book","Pen"],
                   
    // Function 
    prtint : function() {
        console.log("hello Geeks")
    }
}
   
console.log(Table_Object);

Выход:

{ 
    Size: 32, 
    contents: [ "Book", "Pen" ], 
    prtint: [Function: prtint] 
}

Пример 2:

Javascript




class Geeks {      
    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 Geeks: " + this.name );
        console.log("No. of articles by Geeks: "
            + this.articles);
        console.log("No. of cp problems sol by Geeks: "
            + this.cp_problems)
    }
}
var geek1 = new Geeks("Abhinav", 87, 560);
geek1.About();

Выход:

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

Разница между интерфейсом и классами ниже:

Интерфейс

Классы

Мы можем создать интерфейс с использованием ключевого слова interface.

т.е. интерфейс Interface_Name { \ Interface Body }

Мы можем создать класс с ключевым словом class.

т.е. class Class_Name{ \ Class Body }

Интерфейсный план - это в основном структура типа объекта. т.е. это объект, внутри которого определяется только тип параметра. Класс — это план объекта, т. е. класс создания целей — это то, как мы реализуем объект нашего кода.
Он используется для проверки типов. Использование интерфейса, если язык TypeScript в основном ориентирован на проверку типа параметров в объекте. Скрипт Classes in Types используется для создания объекта для чего-либо. Он используется для реализации объекта.
Мы не можем создать экземпляр интерфейса с новым в машинописном тексте. Это означает, что мы не можем создать копию экземпляра в Typescript. Мы можем создать новый экземпляр класса в TypeScript. Это означает, что мы можем создать копию класса с новым ключевым словом.
Интерфейс является виртуальной структурой. Означает, что он присутствует только в коде TypeScript, а не в коде JavaScript, скомпилированном TypeScript. Он всегда существует в коде после компиляции TypeScript в JavaScript.