Variablat e Tipit në TypeScript

Për një kuptim më të mirë të konceptit të gjenerikëve le të krijojmë funksionin tonë të parë - funksionin e identitetit. Ky funksion kthen saktësisht atë që i është kaluar - me të njëjtin tip.

Le të shkruajmë fillimisht variantet e funksionit tonë veç e veç.

Le të shkruajmë një funksion që pranon një numër si parametër dhe kthen një numër:

typescriptfunction func(data: number): number {
  return data;
}

Tani le të shkruajmë një funksion që pranon një varg si parametër dhe kthen një varg:

typescriptfunction func(data: string): string {
  return data;
}

Supozoni tani që duam që e njëjta funksion të bëjë të gjitha këto. Domethënë, ne duam të kryejmë gjenerifikim.

Për këtë, ne përdorim një variabël të tipit, që ruan brenda saj tipin e të dhënave. Një variabël e tillë deklarohet në kllapat këndore përpara kllapave të rrumbullakëta me parametrat e funksionit. Le të deklarojmë një variabël të tillë, duke i dhënë emrin T (mund të jetë çfarëdo):

typescriptfunction func <T>(këtu parametrat) {
  return data;
}

Pas kësaj, ne do të kemi një variabël T, që mund të përdoret për të ruajtur tipin e parametrit, dhe pastaj të përcaktohet atë si tip i vlerës së kthyer.

Le t'i caktojmë parametrit tonë tipin si variablin tonë:

typescriptfunction func <T>(data: T) {
  return data;
}

Do të ndodhë që parametri mund të kalohet në çdo tip, dhe ai tip do të ruhet në variablin tonë T.

Tani le të përdorim vlerën e variablit T për të përcaktuar rezultatin e funksionit:

typescriptfunction func <T>(data: T): T {
  return data;
}

Tani do të ndodhë që tipi i rezultatit të funksionit do të merret nga tipi i parametrit. Le ta testojmë.

Le ta thërrasim funksionin me një numër:

typescriptconsole.log( func(3) );   // nxjerr 3

Le ta thërrasim funksionin me një varg:

typescriptconsole.log( func('x') ); // nxjerr 'x'
Задание 1

Krijoni një funksion që si parametër pranon ose dy numra, ose dy vargje. Si rezultat, funksioni duhet të kthejë shumën e parametrave.