Разница между интерфейсами и классами в TypeScript
В этой статье мы увидим, в чем разница между «интерфейсом» и «классами» в 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. |