Typiske variabler i TypeScript

For en bedre forståelse av konseptet generics la oss opprette vår første funksjon - identitetsfunksjonen. En slik funksjon returnerer nøyaktig det som ble sendt inn - med samme type.

La oss først skrive variantene av vår funksjon hver for seg.

La oss skrive en funksjon som tar inn et tall som parameter og returnerer et tall:

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

La oss nå skrive en funksjon som tar inn en streng som parameter og returnerer en streng:

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

La oss nå si at vi ønsker at alt dette skal gjøres av én funksjon. Det vil si at vi ønsker å utføre generalisering.

For dette bruker vi en typisk variabel, som lagrer datatypen. En slik variabel deklareres i vinkelparenteser før parentesene med funksjonsparameterne. La oss deklarere en slik variabel, og gi den navnet T (kan være hvilket som helst):

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

Etter dette vil vi ha variabelen T, som kan brukes til å plassere parameterens type i den, og deretter angi den som returtype.

La oss angi typen til parameteren vår som vår variabel:

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

Det vil si at parameteren kan sendes i hvilken som helst type, og denne typen vil bli lagret i vår variabel T.

La oss nå bruke verdien av variabelen T for å angi funksjonens resultat:

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

Nå vil det si at funksjonens returtype vil hentes fra parameterens type. La oss sjekke.

La oss kalle funksjonen med et tall:

typescriptconsole.log( func(3) );   // skriver ut 3

La oss kalle funksjonen med en streng:

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

Lag en funksjon som parameter tar inn enten to tall, eller to strenger. Funksjonen skal returnere summen av parameterne.