Variabili Tipiche in TypeScript
Per una migliore comprensione del concetto di generici creiamo la nostra prima funzione - funzione identità. Questa funzione restituisce esattamente ciò che le è stato passato - con lo stesso tipo.
Per cominciare, scriviamo le varianti della nostra funzione separatamente.
Scriviamo una funzione che accetta un numero come parametro e restituisce un numero:
function func(data: number): number {
return data;
}
Ora scriviamo una funzione che accetta una stringa come parametro e restituisce una stringa:
function func(data: string): string {
return data;
}
Supponiamo ora di voler fare in modo che tutto questo venga fatto da una singola funzione. Cioè vogliamo effettuare una generalizzazione.
Per questo usiamo una variabile tipica,
che conserva il tipo di dati. Questa variabile viene dichiarata
tra parentesi angolari prima delle parentesi tonde
con i parametri della funzione. Dichiariamo
questa variabile, dandole il nome T
(può essere qualsiasi):
function func <T>(qui i parametri) {
return data;
}
Dopo di che avremo una variabile T,
che potrà essere utilizzata per
conservare il tipo del parametro, e poi
specificarlo come tipo di ritorno.
Specifichiamo il tipo del nostro parametro usando la nostra variabile:
function func <T>(data: T) {
return data;
}
Risulterà che il parametro può essere passato
di qualsiasi tipo, e questo tipo verrà salvato nella nostra
variabile T.
Ora utilizziamo il valore della variabile T
per specificare il risultato della funzione:
function func <T>(data: T): T {
return data;
}
Ora risulterà che il tipo del risultato della funzione deriverà dal tipo del parametro. Verifichiamo.
Chiamiamo la funzione con un numero:
console.log( func(3) ); // restituirà 3
Chiamiamo la funzione con una stringa:
console.log( func('x') ); // restituirà 'x'
Create una funzione che accetta come parametro o due numeri, o due stringhe. La funzione deve restituire come risultato la somma dei parametri.