Interfaces para classes de POO em TypeScript

Interfaces em TypeScript são amplamente utilizadas tanto como modelos quanto para classes. Para aplicar uma interface a uma classe, a palavra-chave implements é escrita após o nome da classe e, em seguida, o nome da interface.

Além disso, as interfaces descrevem apenas as propriedades e métodos públicos da classe. A parte privada é definida na própria classe e não é descrita na interface.

Vamos tentar na prática. Suponha que temos a seguinte interface, definindo uma propriedade e um método:

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

Vamos criar uma classe que implementa esta interface. Nesta classe, devemos ter implementados a propriedade name e o método greet:

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

Crie uma interface IMath com as propriedades num1 e num2 e um método getDiv, que irá dividir o primeiro número pelo segundo.

Задание 2

Faça uma classe Math que implementa a interface IMath.