Интерфейсы для ООП классов в TypeScript

Интерфейсы в TypeScript широко используются также как шаблоны и для классов. Для того, чтобы применить к классу нужный интерфейс после имени класса пишется ключевое слово implements и затем имя интерфейса.

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

Попробуем на практике. Пусть у нас есть следующий интерфейс, задающий свойство и метод:

interface IUser { name: string; greet(): string; }

Сделаем класс, реализующий этот интерфейс. В этом классе у нас должны быть реализованы свойство name и метод greet:

class User implements IUser { name: string; constructor(name: string) { this.name = name; } greet() { return `hello, ${this.name}!`; } }

Создайте интерфейс IMath со свойствами num1 и num2 и методом getDiv, который будет делить первое число на второе.

Сделайте класс Math, который реализует интерфейс IMath.