Liideste laiendamine OOP-s TypeScriptis

TypeScripti liidesed võivad üksteiselt pärida. Sellist suhet nimetatakse liideste laiendamiseks. Vaatame näidet. Olgu meil liides ISize:

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

Teeme liidese IStyle, mis laiendab ISize:

typescriptinterface IStyle extends ISize {
  color: string;
}

Nüüd loome klassi Figure, mis rakendab liidest IStyle. Meie klass peab rakendama nii liidese enda omaduse kui ka selle vanema omaduse. Teeme selle:

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

Kontrollime tööd:

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

Loo liides IProgrammer koos omadustega salary ja language. Las see liides pärib IUser koos omadustega name, birthday.

Задание 2

Tee klass Employee, mis rakendab IProgrammer.