Interfeyslərin OOP-də TypeScript-də genişləndirilməsi
TypeScript-də interfeyslər bir-birindən
miras ala bilər. Belə qarşılıqlı əlaqə
interfeyslərin genişləndirilməsi adlanır.
Gəlin bir nümunəyə baxaq. Tutaq ki, bizim
ISize interfeysimiz var:
interface ISize {
height: number;
width: number;
}
Gəlin ISize-i genişləndirən
IStyle interfeysini edək:
interface IStyle extends ISize {
color: string;
}
İndi gəlin IStyle interfeysini həyata keçirən
Figure sinifi yaradaq. Bizim
sinifimiz həm interfeysin öz xassəsini,
həm də onun valideyninin xassəsini həyata keçirməlidir.
Gəlin bunu edək:
class 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;
}
}
Gəlin işi yoxlayaq:
let fig = new Figure(130, 200, 'green');
console.log(fig);
salary və language xassələri olan
IProgrammer interfeysini yaradın.
Bu interfeysin name, birthday xassələri olan
IUser-dən miras almasına icazə verin.
IProgrammer-i həyata keçirən
Employee sinifini edin.