Menu
CoddyTech

Interfaces Genéricas

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

Assim como você pode criar funções genéricas, também pode criar interfaces genéricas. Isso permite definir a estrutura de um objeto mantendo certos tipos de propriedade flexíveis e reutilizáveis.

Veja como criar uma interface genérica usando a mesma sintaxe de parâmetro de tipo:

interface Container<T> {
  value: T;
  isEmpty: boolean;
}

O <T> após o nome da interface cria um parâmetro de tipo que pode ser usado em toda a definição da interface. Neste exemplo, a propriedade value terá o tipo que você especificar ao usar a interface, enquanto isEmpty permanece com o tipo fixo boolean.

Quando você usa uma interface genérica, especifica o tipo concreto entre colchetes angulares:

const stringContainer: Container<string> = {
  value: "hello",
  isEmpty: false
};
const numberContainer: Container<number> = {
  value: 42,
  isEmpty: false
};
challenge icon

Desafio

Fácil

Crie uma interface genérica chamada Result que possa armazenar dados de qualquer tipo juntamente com informações de sucesso.

A interface deve ter duas propriedades:

  • success do tipo boolean
  • data do tipo T (o parâmetro de tipo genérico)

Crie os seguintes objetos usando sua interface genérica:

  • stringResult do tipo Result<string> com success: true e data: "Operation completed"
  • numberResult do tipo Result<number> com success: true e data: 42
  • booleanResult do tipo Result<boolean> com success: false e data: false
  • arrayResult do tipo Result<string[]> com success: true e data: ["item1", "item2", "item3"]

Crie uma função genérica chamada processResult que:

  • Use um parâmetro de tipo genérico T
  • Receba um parâmetro result do tipo Result<T>
  • Retorne uma mensagem de texto
  • Se success for true, retorne "Success: [data]"
  • Se success for false, retorne "Failed: [data]"

Imprima as seguintes saídas:

  • Imprima o resultado de chamar processResult com stringResult
  • Imprima o resultado de chamar processResult com numberResult
  • Imprima o resultado de chamar processResult com booleanResult
  • Imprima o resultado de chamar processResult com arrayResult
  • Imprima stringResult.data
FORMATO DE SAÍDA OBRIGATÓRIO: [Seu conteúdo traduzido aqui]

Experimente você mesmo

// TODO: Escreva seu código aqui

// Crie a interface genérica Result


// Crie os objetos usando a interface Result


// Crie a função genérica processResult


// Imprima as saídas necessárias
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: Playground de TypeScript