Разница между интерфейсами и классами в TypeScript
В этой статье мы увидим, в чем разница между «интерфейсом» и «классами» в TypeScript.
Интерфейс: Интерфейс — это виртуальная структура, используемая для проверки типов. В TypeScript мы используем ключевое слово interface для создания нового интерфейса с идентификатором. Он создает структуру для того же типа данных. Интерфейс — это структура, которая определяет свойства и метод для объекта с именем и типом.
Синтаксис:
interface New_Interface{ // This is interface Body }Функции:
- Имеет слабую связь.
- Он поддерживает множественное наследование.
Пример 1:
Javascript
// Interface for Classinterface 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. |