⊗tsSpGnPTL 36 of 37 menu

Uso de parámetros de tipo en restricciones de genéricos en TypeScript

TypeScript también tiene la capacidad de declarar un parámetro de tipo que estará restringido por otro parámetro de tipo. Esto es necesario cuando se tienen que copiar propiedades de un objeto a otro, asegurándose al mismo tiempo de que no pasemos una propiedad extraña.

Veamos el siguiente ejemplo. Volvamos a la función myFunc que determina la longitud de una variable:

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

Sin embargo, ahora queremos que esta función funcione solo con aquellos tipos que tengan la propiedad length. Para ello creemos la interfaz ILength, a la que le asignaremos la propiedad length de tipo numérico:

interface ILength { length: number; }

A continuación, en nuestra función definamos un tipo genérico que herede de ILength usando la palabra clave extends:

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

Así es como se ve nuestro código completo:

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

Comprobemos el funcionamiento de nuestra función y encontremos la longitud de una cadena:

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

Resultado del código ejecutado:

5 'abcde'

Y ahora pasemos un array como parámetro:

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

Resultado del código ejecutado:

3 [ 'a', 'b', 'c' ]
Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar