⊗tsSpGnTV 30 of 37 menu

Variáveis de Tipo Genéricas em TypeScript

Para uma melhor compreensão do conceito de genéricos, vamos criar nossa primeira função - função identidade. Essa função retorna exatamente o que foi passado para ela - com o mesmo tipo.

Vamos começar escrevendo as variantes da nossa função separadamente.

Vamos escrever uma função que recebe um número como parâmetro e retorna um número:

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

Agora vamos escrever uma função que recebe uma string como parâmetro e retorna uma string:

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

Suponha que agora queremos fazer com que tudo isso seja feito por uma única função. Ou seja, nós queremos realizar uma generalização.

Para isso, usamos uma variável de tipo genérica, que armazena o tipo de dados. Essa variável é declarada entre colchetes angulares antes dos parênteses com os parâmetros da função. Vamos declarar essa variável, dando a ela o nome T (pode ser qualquer um):

function func <T>(aqui os parâmetros) { return data; }

Depois disso, teremos a variável T, que poderá ser usada para armazenar o tipo do parâmetro e, em seguida, especificá-lo como o tipo de retorno.

Vamos especificar o tipo do nosso parâmetro como sendo a nossa variável:

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

Isso significa que o parâmetro pode ser passado em qualquer tipo, e esse tipo será armazenado na nossa variável T.

Agora vamos usar o valor da variável T para especificar o resultado da função:

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

Agora, o tipo de retorno da função será derivado do tipo do parâmetro. Vamos testar.

Vamos chamar a função com um número:

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

Vamos chamar a função com uma string:

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

Crie uma função que recebe como parâmetro ou dois números, ou duas strings. Como resultado, a função deve retornar a soma dos parâmetros.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar