Perluasan Antarmuka dalam OOP di TypeScript

Antarmuka dalam TypeScript dapat mewarisi satu sama lain. Interaksi seperti ini disebut perluasan antarmuka. Mari kita lihat contohnya. Misalkan kita memiliki antarmuka ISize:

typescriptinterface ISize {
  height: number;
  width: number;
}

Mari buat antarmuka IStyle, yang akan memperluas ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Sekarang mari kita buat kelas Figure, yang mengimplementasikan antarmuka IStyle. Kelas kita harus mengimplementasikan properti dari antarmuka itu sendiri, maupun dari induknya. Mari kita lakukan:

typescriptclass Figure implements IStyle {
  height: number;
  width: number;
  color: string;
  
  constructor(height: number, width: number, color: string) {
    this.height = height;
    this.width  = width;
    this.color  = color;
  }
}

Mari kita periksa hasilnya:

typescriptlet fig = new Figure(130, 200, 'green');
console.log(fig);
Задание 1

Buatlah antarmuka IProgrammer dengan properti salary dan language. Biarkan antarmuka ini mewarisi IUser dengan properti name, birthday.

Задание 2

Buatlah kelas Employee, yang mengimplementasikan IProgrammer.