Επέκταση Διεπαφών στην Αντικειμενοστραφή Προγραμματισμό στο TypeScript

Οι διεπαφές στο TypeScript μπορούν να κληρονομήσουν η μία από την άλλη. Αυτή η αλληλεπίδραση ονομάζεται επέκταση διεπαφών. Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε μια διεπαφή ISize:

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

Ας φτιάξουμε τη διεπαφή IStyle, η οποία θα επεκτείνει την ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Τώρα ας δημιουργήσουμε μια κλάση Figure, που υλοποιεί τη διεπαφή IStyle. Η κλάση μας θα πρέπει να υλοποιήσει τόσο την ιδιότητα της ίδιας της διεπαφής, όσο και του γονέα της. Ας το κάνουμε:

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;
  }
}

Ας ελέγξουμε τη λειτουργία:

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

Δημιουργήστε μια διεπαφή IProgrammer με ιδιότητες salary και language. Αφήστε αυτήν τη διεπαφή να κληρονομήσει την IUser με ιδιότητες name, birthday.

Задание 2

Φτιάξτε την κλάση Employee, η οποία υλοποιεί την IProgrammer.