Menu
Coddy logo textTech

Interfacce generiche

Fa parte della sezione Introduzione a TypeScript del percorso JavaScript di Coddy. Lezione 61 di 73.

Proprio come puoi creare funzioni generiche, puoi anche creare interfacce generiche. Questo ti permette di definire la struttura di un oggetto mantenendo flessibili e riutilizzabili i tipi di alcune proprietà.

Ecco come creare un'interfaccia generica usando la stessa sintassi dei parametri di tipo:

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

<T> dopo il nome dell'interfaccia crea un parametro di tipo che può essere usato in tutta la definizione dell'interfaccia. In questo esempio, la proprietà value avrà il tipo specificato quando si usa l'interfaccia, mentre isEmpty rimane di tipo boolean fisso.

Quando usi un'interfaccia generica, specifichi il tipo concreto tra parentesi angolari:

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

Sfida

Facile

Crea un'interfaccia generica denominata Result che possa contenere dati di qualsiasi tipo insieme alle informazioni sull'esito positivo.

L'interfaccia deve avere due proprietà:

  • success di tipo boolean
  • data di tipo T (il parametro di tipo generico)

Crea i seguenti oggetti usando la tua interfaccia generica:

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

Crea una funzione generica denominata processResult che:

  • Usa un parametro di tipo generico T
  • Accetta un parametro result di tipo Result<T>
  • Restituisce un messaggio di tipo stringa
  • Se success è true, restituisce "Success: [data]"
  • Se success è false, restituisce "Failed: [data]"

Stampa i seguenti output:

  • Stampa il risultato della chiamata a processResult con stringResult
  • Stampa il risultato della chiamata a processResult con numberResult
  • Stampa il risultato della chiamata a processResult con booleanResult
  • Stampa il risultato della chiamata a processResult con arrayResult
  • Stampa stringResult.data

Provalo tu

// TODO: Scrivi il tuo codice qui

// Crea l'interfaccia generica Result


// Crea gli oggetti usando l'interfaccia Result


// Crea la funzione generica processResult


// Stampa gli output richiesti
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Introduzione a TypeScript

Esercitati da solo: Playground TypeScript