⊗tsSpGnTV 30 of 37 menu

Variables de tipo en TypeScript

Para una mejor comprensión del concepto de genéricos creemos nuestra primera función - función identidad. Esta función devuelve exactamente lo que se le pasó - con el mismo tipo.

Para empezar, escribamos las variantes de nuestra función por separado.

Escribamos una función que acepte un número como parámetro y devuelva un número:

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

Ahora escribamos una función que acepte una cadena como parámetro y devuelva una cadena:

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

Supongamos ahora que queremos que todo esto lo haga una sola función. Es decir, queremos realizar una generalización.

Para ello utilizamos una variable de tipo, que guarda el tipo de datos. Esta variable se declara entre corchetes angulares antes de los paréntesis con los parámetros de la función. Declaremos esta variable, dándole el nombre T (puede ser cualquier nombre):

function func <T>(aquí los parámetros) { return data; }

Después de esto, tendremos la variable T, que podremos usar para guardar en ella el tipo del parámetro, y luego especificarlo como el tipo de retorno.

Especificamos a nuestro parámetro el tipo de nuestra variable:

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

Resultará que el parámetro puede ser pasado en cualquier tipo, y este tipo se guardará en nuestra variable T.

Ahora usemos el valor de la variable T para especificar el resultado de la función:

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

Ahora resultará que el tipo de resultado de la función se obtendrá del tipo del parámetro. Comprobémoslo.

Llamemos a la función con un número:

console.log( func(3) ); // mostrará 3

Llamemos a la función con una cadena:

console.log( func('x') ); // mostrará 'x'

Crea una función que acepte como parámetro o dos números, o dos cadenas. El resultado de la función debe ser devolver la suma de los parámetros.

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