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

Интерфейс определяет структуру, за которой следует производный класс. Это контракт, за которым следует любая сущность. Интерфейс содержит много вещей, как свойства, так и события, методы, и все они называются членами интерфейса. Интерфейс содержит единственное объявление этих членов, эти члены будут реализованы классом Deriving этого интерфейса. Ключевое слово интерфейса используется для объявления интерфейса.

Пример объявления интерфейса.

Синтаксис:

интерфейс имя_интерфейса

(

)

интерфейс Employee (

Имя: строка,

LastName: строка,

sayHello: () => строка

)

var customer: Employee = (

ПгвЬЫат:»Том»,

LastName:»Хэнкс»,

sayHello: (): string => (вернуть «Привет»)

)

console.log («Объект клиента»)

console.log (customer.firstName)

console.log (customer.lastName)

console.log (customer.sayHello ())

Выше пример определяет интерфейс. Объект клиента имеет тип Employee.

Теперь он будет привязан к объекту для определения всех свойств, как указано в интерфейсе.

При компиляции он сгенерирует следующий код JavaScript, приведенный ниже.

// Генерируется машинописным шрифтом 1.8.10

var customer = (firstName: «Tom», lastName: «Hanks»,

sayHello: function () (return «Привет!»; )

);

console.log («Объект клиента»);

console.log (customer.firstName);

console.log (customer.lastName);

console.log (customer.sayHello ());

Вывод приведенного выше примера кода:

Объект клиента

Том

Hanks

всем привет

Класс является планом для объекта; это концепция языка объектно-ориентированного программирования. Класс обеспечивает функцию инкапсуляции ООП. Он объединяет члены данных, методы и конструкторы в единый объект unite, который называется классом, и таким образом обеспечивает инкапсуляцию. Более ранний класс не был поддержан Typescript, он получил поддержку от версии Typescript для ES6. Ключевое слово Class используется для создания классов в Typescript.

Синтаксис:-

class class_name (

//сделать

)

класс содержит члены данных, методы и конструктор;

Элементы данных, также называемые полем, представляют свойства объекта, который создается классом.

Правильная связь - это состояние объекта, например цвет пера, высота, ширина будет называться свойствами объекта.

Методы представляют поведение объекта, например, как пишет функциональность пера, кофемашина может делать различные виды кофе, это называется поведением объекта.

Конструкторы используются для генерации объекта для определенного класса, так что его можно использовать как необходимые места. Он также отвечает за инициализацию поля класса.

Все эти три элемента называются членами класса, который инкапсулируется классом в единое целое.

Рассмотрим класс Employee в машинописи.

class Employee (

)

При компиляции он сгенерирует следующий код JavaScript.

// Генерируется машинописным шрифтом 1.8.10

var Employee = (function () (

function Employee () (

)

вернуть сотрудника;

) ());

Пример: объявление класса

class CarDemo (

// объявление поля

Двигатель: строка;

// объявление конструктора

конструктор (engine: string) (

this.engine = двигатель

)

// объявление функции

show (): void (

console.log («Двигатель:« + this.engine »)

)

)

В приведенном выше примере имя класса - CarDemo, имеющее механизм имен полей, имеющий конструктор, который инициализирует механизм имен полей, это ключевое слово ссылается на текущий экземпляр класса, вот почему это. engine = engine, написанный с одним именем метода - показать, в котором показано значение поля, которое было инициализировано конструктором.

Компилируя приведенный выше код, он сгенерирует следующий код JavaScript.

// Генерируется машинописным шрифтом 1.8.10

var CarDemo = (function () (

функция CarDemo (двигатель) (

this.engine = engine;

)

CarDemo.prototype.show = function () (

console.log («Engine is:» + this.engine);

);

возврат CarDemo;

) ());

Создание объектов Instance вышеупомянутого класса

Для создания экземпляра класса используется новое ключевое слово, за которым следует имя класса. Синтаксис для того же приведен ниже -

Синтаксис

var object_name = new class_name ((аргументы))

Новое ключевое слово отвечает за создание экземпляров.

Правая часть выражения вызывает конструктор. В конструктор должны быть переданы значения, если он параметризован.

/ создание объекта

var obj = new CarDemo («XXSY1»);

// доступ к полю

console.log («Чтение значения атрибута Engine как:» + obj.engine);

// доступ к функции

obj.show ();

Вывод вышеуказанного кода выглядит следующим образом:

Чтение значения атрибута Engine как XXSY1

Функция индикации Двигатель: XXSY1

Сравнение лицом к лицу между интерфейсом Typescript и классом

Ниже приведено 4 главных отличия интерфейса Typescript от класса.

Основные различия между интерфейсом Typescript и классом

Оба интерфейса Typescript и класс являются популярным выбором на рынке; Давайте обсудим некоторые основные различия между интерфейсом Typescript и классом:

  1. Интерфейс определяет структуру для получения класса этого интерфейса. интерфейс содержит единственное объявление функций-членов.
  2. Класс отвечает за реализацию структуры интерфейса, предоставляя тело функции интерфейса. Он обеспечивает инкапсуляцию путем переноса элементов данных, функций в блок, который называется классом, и таким образом обеспечивает функции инкапсуляции OPP.
  3. Ключевое слово interface используется для создания интерфейса, содержащего элементы данных, функции.
  4. Ключевое слово class используется для создания класса, который содержит члены данных, функции, конструкторы.
  5. Интерфейс полностью удален при компиляции кода. Пока класс не удаляется при компиляции кода.
  6. Один интерфейс может расширять другой интерфейс, расширяя ключевое слово, таким образом, интерфейс обеспечивает наследование. Интерфейс не расширяет класс, он определяет структуру для класса. Интерфейс поддерживает множественное наследование, расширяя несколько интерфейсов вместе.
  7. Класс реализует интерфейс с помощью ключевого слова Implements, класс может расширять другой класс, также используя ключевое слово extends. Таким образом, дочерний класс может использовать родительский класс. Эта функция называется наследованием, класс не поддерживает множественное наследование, поскольку одновременно класс реализует только один интерфейс. это возможно с интерфейсом.

Сравнение интерфейса Typescript с классом

Давайте посмотрим на подробное описание интерфейса Typescript против класса

Основа сравнения между интерфейсом Typescript и классом Интерфейс Учебный класс
ОпределениеИнтерфейс определяет структуру, за которой следует производный класс.Он объединяет элементы данных, методы и конструкторы в единый объект, который называется классом.
использованиеСоздать структуру для объекта.Создание объекта, Инкапсуляция для полей, метод
Использование в реальном времениДизайн-шаблон, Разработка структуры проектаРеализует определенные архитектуры
Ключевое слово созданияключевое слово interface используется для создания интерфейса.Ключевое слово class используется для создания класса.

Вывод - интерфейс Typescript против класса

Интерфейс Typescript и класс имеют различное назначение в области разработки программного обеспечения. Интерфейс предоставляет структурный строительный блок для класса, в то время как эти структуры реализуются классом, посредством которого создается объект класса.

Мы будем использовать интерфейс для разработки базовой структуры программного обеспечения, которое разработчик разработает в будущем. Class реализует интерфейс, предоставляя основную часть метода интерфейса. Создание интерфейса легко на начальном этапе разработки программного обеспечения, когда требование неясно, поскольку оно обеспечивает гибкость для изменения, потому что оно будет реализовано классом.

Рекомендуемая статья

Это было руководство к основным различиям между интерфейсом Typescript и классом. Здесь мы также обсудим интерфейс Typescript и различия между классами с помощью инфографики и таблицы сравнения. Вы также можете взглянуть на следующие статьи -

  1. Тип TypeScript против различий в интерфейсе
  2. CoffeeScript против TypeScript
  3. JavaScript против TypeScript
  4. TypeScript против потока, который является более полезным