⊗tsSpGnPTL 36 of 37 menu

Utilização de parâmetros de tipo em restrições de genéricos no TypeScript

O TypeScript também oferece a possibilidade de declarar um parâmetro de tipo que será restrito por outro parâmetro de tipo. Isso é necessário quando precisamos copiar propriedades de um objeto para outro, ao mesmo tempo em que nos protegemos contra a possibilidade de passarmos uma propriedade extra.

Vamos considerar o seguinte exemplo. Voltemos à função myFunc, que determina o comprimento de uma variável:

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

No entanto, agora queremos que esta função funcione apenas com tipos que possuam a propriedade length. Para isso, vamos criar a interface ILength, atribuindo a ela a propriedade length do tipo número:

interface ILength { length: number; }

Em seguida, em nossa função, definiremos um tipo genérico que estende ILength através da palavra-chave extends:

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

Este é o nosso código completo:

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

Vamos testar a nossa função e encontrar o comprimento da string:

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

Resultado do código executado:

5 'abcde'

E agora, vamos passar um array como parâmetro:

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

Resultado do código executado:

3 [ 'a', 'b', 'c' ]
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