⊗tsSpGnPTL 36 of 37 menu

Utilizzo dei parametri di tipo nei vincoli dei generici in TypeScript

TypeScript offre anche la possibilità di dichiarare un parametro di tipo che sarà vincolato da un altro parametro di tipo. Questo è necessario quando si deve copiare le proprietà da un oggetto a un altro, assicurandosi al contempo di non passare proprietà non richieste.

Consideriamo il seguente esempio. Torniamo alla funzione myFunc che determina la lunghezza di una variabile:

function myFunc <T> (data: T): T { console.log(data.length); // errore return data; }

Tuttavia, ora vogliamo che questa funzione lavori solo con i tipi che possiedono la proprietà length. Per fare ciò, creiamo l'interfaccia ILength, a cui assegniamo la proprietà length di tipo number:

interface ILength { length: number; }

Successivamente, nella nostra funzione, definiamo un tipo generico che estende ILength tramite la parola chiave extends:

function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

Ecco come appare il nostro codice completo:

interface ILength { length: number; } function myFunc <T extends ILength> (data: T): T { console.log(data.length); return data; }

Verifichiamo il funzionamento della nostra funzione e troviamo la lunghezza di una stringa:

console.log(myFunc('abcde'));

Risultato del codice eseguito:

5 'abcde'

Ora passiamo un array come parametro:

console.log(myFunc(['a', 'b', 'c']));

Risultato del codice eseguito:

3 [ 'a', 'b', 'c' ]
Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta