0Pricing
TypeScript Academy · Lezione

Estensione e fusione delle interfacce

Estenda le interfacce e comprenda la fusione delle dichiarazioni.

Estensione e fusione delle interfacce è una lezione TypeScript Academy gratuita su CoddyKit. Questa è la lezione 3 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

Le interfacce possono estendere altre interfacce per costruire sulla base di strutture esistenti e TypeScript unisce automaticamente più dichiarazioni della stessa interfaccia.

Estensione di un'interfaccia

Utilizzi la parola chiave `extends` per creare una nuova interfaccia che includa tutte le proprietà dell'interfaccia padre.
interface Animal { name: string; }
interface Dog extends Animal {
  breed: string;
}
const rex: Dog = { name: 'Rex', breed: 'Labrador' };

Estensione di più interfacce

Un'interfaccia può estendere più interfacce contemporaneamente, combinando tutte le loro proprietà.
interface Flyable { fly(): void; }
interface Swimmable { swim(): void; }
interface Duck extends Flyable, Swimmable {
  quack(): void;
}

Override delle proprietà durante l'estensione

Un'interfaccia estesa può eseguire l'override di una proprietà dell'interfaccia padre, ma il nuovo tipo deve essere assegnabile al tipo padre.
interface Base { value: string | number; }
interface Derived extends Base { value: string; } // OK — string is narrower
// interface Bad extends Base { value: boolean; } // Error

Fusione delle dichiarazioni

Quando si dichiarano due interfacce con lo stesso nome, TypeScript le unisce in un'unica interfaccia con tutte le proprietà.
interface Window { title: string; }
interface Window { location: Location; }
// Merged: Window has both title and location

Estensione dei tipi delle librerie

La fusione delle dichiarazioni viene utilizzata per estendere i tipi di terze parti. Ad esempio, è possibile aggiungere proprietà all'interfaccia Request di Express.
// express.d.ts
declare namespace Express {
  interface Request {
    user?: User;
  }
}

Un'interfaccia che estende un alias di tipo

Un'interfaccia può estendere un alias di tipo purché l'alias sia un tipo oggetto.
type Named = { name: string };
interface User extends Named { email: string; }

Catene di estensioni annidate

Le catene di estensioni possono avere più livelli di profondità.
interface A { a: number; }
interface B extends A { b: number; }
interface C extends B { c: number; }
const obj: C = { a: 1, b: 2, c: 3 };

extends e implements

`extends` serve per l'ereditarietà tra interfacce o tra classi. `implements` serve affinché una classe soddisfi il contratto di un'interfaccia.
interface Serializable { serialize(): string; }
class Model implements Serializable {
  serialize() { return JSON.stringify(this); }
}

La fusione si applica a tutti gli utilizzi

Quando le interfacce vengono unite, tutto il codice esistente che utilizza quell'interfaccia riceve automaticamente le nuove proprietà. È per questo che l'estensione delle librerie funziona.

Fusione ed estensione: quando usare ciascuna

Utilizzi `extends` per creare una nuova interfaccia basata su una esistente. Utilizzi la fusione (stesso nome) per aggiungere elementi a un'interfaccia da un file separato, ad esempio per estenderla.

Verifica rapida

Quale funzionalità di TypeScript consente di aggiungere proprietà a un'interfaccia di una libreria di terze parti?

Riepilogo

Le interfacce estendono altre interfacce con `extends`, combinandone le strutture. La fusione delle dichiarazioni combina automaticamente le interfacce con lo stesso nome. Questo consente di estendere le librerie senza modificare il codice di terze parti.

Domande Frequenti

La lezione «Estensione e fusione delle interfacce» è gratuita?

Sì — il testo completo di «Estensione e fusione delle interfacce» è 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 «Estensione e fusione delle interfacce»?

Estenda le interfacce e comprenda la fusione delle dichiarazioni. 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 3 di 4.

Quanto tempo richiede la lezione «Estensione e fusione delle interfacce»?

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. Definizione della struttura degli oggetti con le interfacce
  2. Alias di tipo per tipi complessi
  3. Estensione e fusione delle interfacce
  4. Interface o type: quando usare ciascuno
← Torna a TypeScript Academy