Menu
Coddy logo textTech

Criando uma Função de Identidade Genérica

Parte da seção Introdução ao TypeScript do Journey de JavaScript da Coddy. Lição 58 de 73.

Aqui está a sintaxe de uma função genérica usando o exemplo clássico de identidade:

function identity(arg: T): T {
  return arg;
}

O <T> após o nome da função declara um parâmetro de tipo chamado T. Esse T atua como um espaço reservado que pode representar qualquer tipo. Quando você usa essa função, o TypeScript substitui T pelo tipo real com o qual você está trabalhando.

A beleza dessa abordagem é que ela preserva as informações de tipo.

Se você chamar identity("hello"), o TypeScript saberá que o tipo de retorno é string. Se você chamar identity(42), ele saberá que o tipo de retorno é number.

Você obtém toda a flexibilidade de trabalhar com vários tipos, mantendo a segurança de tipos completa.

Por convenção, T representa "Type", mas você pode usar qualquer nome que quiser para o parâmetro de tipo. O importante é que ele crie uma relação entre os tipos de entrada e de saída da sua função.

challenge icon

Desafio

Fácil

Crie uma função genérica chamada wrapInObject que aceite um argumento de qualquer tipo e retorne um objeto contendo esse valor.

A função deve:

  • Usar um parâmetro de tipo genérico T
  • Aceitar um parâmetro chamado item do tipo T
  • Retornar um objeto com uma única propriedade value do tipo T
  • Ter uma anotação explícita do tipo de retorno

Crie as seguintes variáveis para testar sua função:

  • wrappedString - chame wrapInObject com a string "Hello TypeScript"
  • wrappedNumber - chame wrapInObject com o número 42
  • wrappedBoolean - chame wrapInObject com o booleano true

Imprima as seguintes saídas:

  • Imprima wrappedString.value
  • Imprima wrappedNumber.value
  • Imprima wrappedBoolean.value
  • Imprima o resultado de chamar wrapInObject com a string "Generic", acessando a propriedade value
  • Imprima o resultado de chamar wrapInObject com o número 100, acessando a propriedade value

Experimente você mesmo

// TODO: Escreva seu código aqui
// Crie a função genérica wrapInObject

// TODO: Crie as variáveis de teste
// wrappedString, wrappedNumber, wrappedBoolean

// Imprima as saídas
console.log(wrappedString.value);
console.log(wrappedNumber.value);
console.log(wrappedBoolean.value);
console.log(wrapInObject("Generic").value);
console.log(wrapInObject(100).value);
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Introdução ao TypeScript

Pratique por conta própria: Compilador de JavaScript online