TypeScript да ООП да интерфейсларни кенгайтириш
TypeScript да интерфейслар бир-биридан мерос
олишлари мумкин. Бу ўзаро таъсир
интерфейсларни кенгайтириш деб аталади.
Келинг, мисолда кўрамиз. Фарз қилайлик, бизда
ISize интерфейси мавжуд:
typescriptinterface ISize {
height: number;
width: number;
}
ISize ни кенгайтирадиган IStyle
интерфейсини ясаймиз:
typescriptinterface IStyle extends ISize {
color: string;
}
Энди IStyle интерфейсини амалга оширадиган
Figure синфини ясаймиз. Бизнинг синф
ўзининг интерфейсининг хам, унинг ота-онасининг хам
xусусиятларини амалга ошириши керак.
Бунни амалга оширамиз:
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
salary ва language xусусиятларига эга
IProgrammer интерфейсини яратинг.
Бу интерфейс name, birthday xусусиятларига
эга IUser дан мерос олсин.
Задание 2
IProgrammer ни амалга оширадиган
Employee синфини ясанг.