Интерфейсҳоро дар ООП дар TypeScript васеъ кардан
Интерфейсҳо дар TypeScript метавонанд аз якдигар
мерос гиранд. Чунин муносибат
васеъ кардани интерфейсҳо номида мешавад.
Биёед ба мисол назарем. Фарз кунем, ки мо
интерфейси ISize дорем:
interface ISize {
height: number;
width: number;
}
Биёед интерфейси IStyle-ро созем, ки
ISize-ро васеъ мекунад:
interface IStyle extends ISize {
color: string;
}
Ҳоло биёед синфи Figure-ро созем,
ки интерфейси IStyle-ро амалӣ мекунад. Синфи
мо бояд ҳам хосияти
худи интерфейс ва ҳам волидайни онро амалӣ кунад.
Биёед ин корро кунем:
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;
}
}
Корро санҷем:
let fig = new Figure(130, 200, 'green');
console.log(fig);
Интерфейси IProgrammer-ро бо
хосиятҳои salary ва language созед.
Бигзор ин интерфейс аз IUser бо хосиятҳои
name, birthday мерос гирад.
Синфи Employee-ро созед, ки
IProgrammer-ро амалӣ мекунад.