Menu
Coddy logo textTech

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, você também pode criar interfaces genéricas. Isso permite que você defina a forma de um objeto enquanto mantém certos tipos de propriedades flexíveis e reutilizáveis.

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

interface Container {
  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á qualquer tipo que você especificar ao usar a interface, enquanto isEmpty permanece como um tipo boolean fixo.

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

const stringContainer: Container = {
  value: "hello",
  isEmpty: false
};

const numberContainer: Container = {
  value: 42,
  isEmpty: false
};
challenge icon

Desafio

Fácil

Crie uma interface genérica chamada Result que possa conter dados de qualquer tipo junto 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 do tipo string
  • Se success for true, retorne "Success: [data]"
  • Se success for false, retorne "Failed: [data]"

Imprima as seguintes saídas:

  • Imprima o resultado da chamada de processResult com stringResult
  • Imprima o resultado da chamada de processResult com numberResult
  • Imprima o resultado da chamada de processResult com booleanResult
  • Imprima o resultado da chamada de processResult com arrayResult
  • Imprima stringResult.data

Experimente você mesmo

// TODO: Escreva seu código aqui

// Crie a interface Result genérica


// Crie os objetos usando a interface Result


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


// 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: Compilador de JavaScript online