Interfejsi za OOP klase u TypeScript-u

Interfejsi u TypeScript-u se takođe široko koriste kao šabloni i za klase. Da bi se primenio željeni interfejs na klasu, nakon imena klase piše se ključna reč implements i zatim ime interfejsa.

Pritom, interfejsi opisuju samo javna svojstva i metode klase. Privatni deo se definiše u samoj klasi i ne opisuje se u interfejsu.

Isprobajmo u praksi. Pretpostavimo da imamo sledeći interfejs, koji definiše svojstvo i metod:

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

Napravimo klasu koja implementira ovaj interfejs. U ovoj klasi moraju biti implementirani svojstvo name i metod greet:

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

Kreirajte interfejs IMath sa svojstvima num1 i num2 i metodom getDiv, koji će deliti prvi broj sa drugim.

Задание 2

Napravite klasu Math koja implementira interfejs IMath.