TypeScript-da görnüş üýtgeýänler
Generiklaryň düşünjesini gowy düşünmek üçin öz ilkinji funksiýamyzy - şahsyýet funksiýasy döredeli. Şeýle funksiýa özüne berlen zatlary takyk şol görnüşde yzyna gaýtarýar.
Başlangyçda funksiýamyzyň wariantlaryny aýry-ayrylykda ýazalyň.
Parametr hökmünde san alyp, sany yzyna gaýtaryan funksiýa ýazalyň:
function func(data: number): number {
return data;
}
Indi bolsa parametr hökmünde setir alyp, setiri yzyna gaýtaryan funksiýa ýazalyň:
function func(data: string): string {
return data;
}
Indi bolsa munyň hemmesini bir funksiýa ýerine ýetirmek isleýäris. Ýagny biz umumylaşdyrmak amala aşyrmak isleýäris.
Bun üçin biz görnüş üýtgeýjisi ulanarys,
bu maglumat görnüşini özünde saklaýar. Şeýle
üýtgeýji funksiýanyň parametrli ýaýly möýjerlerinden
öň burçly möýjerlerde bellenilýär. Bu üýtgeýjini
T (islenilen) at bilen bellenilýär:
function func <T>(bu ýerde parametrler) {
return data;
}
Şondan soň bizde T üýtgeýjisi peýda bolýar,
ony parametriň görnüşini goýmak üçin ulanyp bilersiňiz,
soň bolsa ony yzyna gaýtarylýan baha hökmünde görkezip
bilersiňiz.
Parametrimize görnüşi hökmünde öz üýtgeýjimizi görkezeliň:
function func <T>(data: T) {
return data;
}
Netijede parametr islendik görnüşde berlip biliner,
we bu görnüş bizim T üýtgeýjimize saklanar.
Indi T üýtgeýjisiniň bahasyny funksiýanyň
netijesini görkezmek üçin ulanyň:
function func <T>(data: T): T {
return data;
}
Indi funksiýanyň netije görnüşi parametriň görnüşinden alynar. Geliň barlap göreliň.
Funksiýany san bilen çagyralyň:
console.log( func(3) ); // 3-ü çykarar
Funksiýany setir bilen çagyralyň:
console.log( func('x') ); // 'x'-i çykarar
Parametr hökmünde ýa iki sany, ýa-da iki setir alýan funksiýa düzüň. Funksiýa öz netijesi hökmünde parametrleriň jemini yzyna gaýtarmaly.