Интерфейси за ООП класове в TypeScript

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

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

Нека опитаме на практика. Да предположим, че имаме следния интерфейс, задаващ свойство и метод:

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

Нека направим клас, реализиращ този интерфейс. В този клас трябва да са реализирани свойството name и методът greet:

typescriptclass User implements IUser {
  name: string;
  
  constructor(name: string) {
    this.name = name;
  }
  
  greet() {
    return `hello, ${this.name}!`;
  }
}
Задание 1

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

Задание 2

Направете клас Math, който реализира интерфейса IMath.