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
};
quiz iconTeste seus conhecimentos

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

quiz iconTeste seus conhecimentos

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

quiz iconTeste seus conhecimentos

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

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

Folha de consulta

Interfaces genéricas permitem que você defina a forma de um objeto enquanto mantém certos tipos de propriedades flexíveis e reutilizáveis.

Crie uma interface genérica usando a 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.

Use uma interface genérica especificando o tipo concreto entre colchetes angulares:

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

const numberContainer: Container<number> = {
  value: 42,
  isEmpty: false
};

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