Tipinės kintamieji TypeScript'e
Kad geriau suprastume generikų koncepciją sukurkime mūsų pirmąją funkciją - tapatybės funkciją. Tokia funkcija grąžina tiksliai tai, kas jai buvo perduota - su tuoju pačiu tipu.
Pirmiausia parašykime mūsų funkcijos variantus atskirai.
Parašykime funkciją, kuri parametru priima skaičių ir grąžina skaičių:
function func(data: number): number {
return data;
}
Dabar parašykime funkciją, kuri parametru priima eilutę ir grąžina eilutę:
function func(data: string): string {
return data;
}
Tarkime dabar norime, kad tai viską darytų viena funkcija. Tai yra mes norime atlikti apibendrinimą.
Tam naudosime tipinį
kintamąjį, kuris išsaugo duomenų tipą. Toks kintamasis deklaruojamas
kampiniuose skliaustuose prieš apvaliuosius skliaustus
su funkcijos parametrais. Deklaruokime
tokį kintamąjį, suteikdami jam pavadinimą T
(galima bet kokį):
function func <T>(čia parametrai) {
return data;
}
Po to pasirodys kintamasis T,
kurį galima bus naudoti, kad
į jį įdėtume parametro tipą, o tada
nurodytume jį kaip grąžinamą
reikšmę.
Nurodykime mūsų parametro tipą kaip mūsų kintamojo:
function func <T>(data: T) {
return data;
}
Taip bus, kad parametras gali būti perduotas
bet kokiame tipė, ir šis tipas bus išsaugotas mūsų
kintamajame T.
Dabar panaudokime kintamojo T reikšmę
kaip funkcijos rezultato nurodymą:
function func <T>(data: T): T {
return data;
}
Dabar bus, kad funkcijos rezultato tipas bus gaunamas iš parametro tipo. Patikrinkime.
Iškvieskime funkciją su skaičiumi:
console.log( func(3) ); // išves 3
Iškvieskime funkciją su eilute:
console.log( func('x') ); // išves 'x'
Sukurkite funkciją, kuri parametru priima arba du skaičius, arba dvi eilutes. Funkcija savo rezultatu turi grąžinti parametrų sumą.