Интерфейсҳо барои синфҳои ООП дар TypeScript
Интерфейсҳо дар TypeScript инчунин васеъ истифода мешаванд
ҳамчун шаблонҳо ва барои синфҳо. Барои он,
ки интерфейси зарурӣ ба синф татбиқ карда шавад,
пас аз номи синф калимаи калидӣ
implements ва сипас номи интерфейс навишта мешавад.
Дар ин ҳол интерфейсҳо фақат хусусиятҳо ва усулҳои оммавии синфро тавсиф мекунанд. Қисми махсус дар худи синф муайян карда мешавад ва дар интерфейс тавсиф намешавад.
Биёед дар амал санҷем. Бигзор мо дорем интерфейси зерин, ки хусусият ва усулро муайян мекунад:
interface IUser {
name: string;
greet(): string;
}
Биёед синферо созем, ки ин интерфейсро амалӣ мекунад.
Дар ин синф мо бояд дошта бошем
хусусияти name ва усули greet:
class User implements IUser {
name: string;
constructor(name: string) {
this.name = name;
}
greet() {
return `hello, ${this.name}!`;
}
}
Интерфейси IMath бо хусусиятҳои
num1 ва num2 ва усули
getDiv созед, ки адами аввалро
бар адами дуюм тақсим мекунад.
Синфи Math созед, ки интерфейси
IMath-ро амалӣ мекунад.