TypeScript Academy · Lezione

Interfacce e alias di tipo generici

Applichi i generics alle interfacce e ai tipi personalizzati.

Lezione 2 di 413 passaggi

Interfacce e alias di tipo generici è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento TypeScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso TypeScript Academy include 4 lezioni in totale.

Benvenuto

I generics non sono limitati alle funzioni. Anche le interfacce e gli alias di tipo accettano parametri di tipo, diventando riutilizzabili con molti tipi diversi.

Sintassi delle interfacce generiche

Aggiunga `` dopo il nome dell'interfaccia per renderla generica. Utilizzi T nei tipi delle proprietà e nelle firme dei metodi.
interface Box<T> {
  value: T;
  unwrap(): T;
}
const box: Box<number> = { value: 42, unwrap() { return this.value; } };

Alias di tipo generico

Gli alias di tipo utilizzano la stessa sintassi ``.
type Maybe<T> = T | null | undefined;
type Pair<A, B> = { first: A; second: B };
const p: Pair<string, number> = { first: 'Alice', second: 30 };

Interfaccia generica di repository

Un caso d'uso classico è un'interfaccia generica di repository che funziona con qualsiasi tipo di entità.
interface Repository<T> {
  findById(id: number): T | null;
  findAll(): T[];
  save(item: T): void;
  delete(id: number): void;
}

Implementare un'interfaccia generica

Fornisca l'argomento di tipo quando implementa un'interfaccia generica.
class UserRepo implements Repository<User> {
  findById(id: number): User | null { return null; }
  findAll(): User[] { return []; }
  save(user: User): void {}
  delete(id: number): void {}
}

Estendere interfacce generiche

Le interfacce generiche possono estendere altre interfacce generiche.
interface Named<T> { name: T; }
interface NamedAndAged<T> extends Named<T> { age: number; }

Tipo generico per le risposte

Un tipo generico per le risposte API che racchiude qualsiasi payload di dati.
type ApiResponse<T> = {
  status: 'success' | 'error';
  data: T;
  timestamp: number;
};
const res: ApiResponse<User[]> = { status: 'success', data: [], timestamp: Date.now() };

Più parametri di tipo nelle interfacce

Le interfacce supportano più parametri di tipo.
interface KeyValue<K, V> {
  key: K;
  value: V;
}
const kv: KeyValue<string, number> = { key: 'age', value: 30 };

Metodo generico in un'interfaccia non generica

Un'interfaccia può avere metodi generici senza rendere generica l'intera interfaccia.
interface Transformer {
  transform<T, U>(input: T, fn: (val: T) => U): U;
}

Tipi generici ricorsivi

I tipi generici possono fare riferimento a se stessi per rappresentare alberi o liste concatenate.
interface TreeNode<T> {
  value: T;
  children: TreeNode<T>[];
}

Alias di tipo o interfaccia per i generics

Entrambi supportano i generics allo stesso modo. Preferisca interface per i contratti implementati dalle classi e type per i generics che coinvolgono unioni, come Maybe.

Controllo rapido

Che cosa fornisce quando implementa `interface Repository`?

Riepilogo

Le interfacce generiche e gli alias di tipo utilizzano per funzionare con qualsiasi tipo. Consentono di creare contratti riutilizzabili per repository, contenitori di risposte e strutture dati ricorsive. Li implementi fornendo l'argomento di tipo concreto.
Gratis per iniziare

Impara TypeScript con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
101
Lezioni
352

Domande Frequenti

La lezione «Interfacce e alias di tipo generici» è gratuita?

Sì — il testo completo di «Interfacce e alias di tipo generici» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso TypeScript Academy, passa a CoddyKit PRO. Il corso TypeScript Academy include 4 lezioni in totale.

Cosa imparerò in «Interfacce e alias di tipo generici»?

Applichi i generics alle interfacce e ai tipi personalizzati. Eserciti TypeScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare TypeScript Academy?

Non è richiesta alcuna esperienza precedente. TypeScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Interfacce e alias di tipo generici»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione TypeScript Academy?

Sì. Ogni lezione TypeScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Funzioni generiche: parametri di tipo
  2. Interfacce e alias di tipo generici
  3. Vincoli dei generics con extends
  4. Parametri di tipo predefiniti
← Torna a TypeScript Academy