TypeScript: Qual è la differenza tra Type e Interface?

Matteo Curci
2 min readMar 6

Se hai iniziato a lavorare con TypeScript, è probabile che tu abbia incontrato i concetti di “type” e “interface”. In questo articolo, vedremo la differenza tra i due e quando dovresti usarli.

Type

Un “type” in TypeScript è un modo per definire la forma di un oggetto o di una variabile. Puoi usarlo per definire un tipo personalizzato che può essere utilizzato in più parti del codice.

Ecco un esempio:

type User = {
id: number;
name: string;
email: string;
}

In questo caso, abbiamo definito un nuovo tipo chiamato “User” che ha tre proprietà: “id”, “name” e “email”. Questo tipo può essere utilizzato ovunque nel codice in cui è necessario definire un oggetto che abbia queste stesse proprietà.

Puoi anche usare un “type” per definire un alias per un tipo esistente. Ad esempio:

type UserId = number;

In questo caso, abbiamo definito un nuovo tipo chiamato “UserId” che è un alias per il tipo “number”. Questo può essere utile se hai bisogno di definire un tipo personalizzato che sia facile da leggere e da scrivere.

Interface

Un’interfaccia in TypeScript è simile a un “type”, ma ha alcune differenze importanti. Invece di definire un tipo personalizzato, un’interfaccia definisce la forma di un oggetto. Puoi usarlo per definire un’API che deve essere implementata da un oggetto.

Ecco un esempio:

interface User {
id: number;
name: string;
email: string;
}

In questo caso, abbiamo definito un’interfaccia chiamata “User” che ha tre proprietà: “id”, “name” e “email”. Questo indica che qualsiasi oggetto che implementa questa interfaccia deve avere queste proprietà.

L’interfaccia può anche definire metodi che devono essere implementati. Ad esempio:

interface Animal {
name: string;
makeSound(): void;
}

In questo caso, abbiamo definito un’interfaccia chiamata “Animal” che ha due proprietà: “name” e “makeSound”. “makeSound” è un metodo che deve essere implementato da qualsiasi oggetto che implementa questa interfaccia.

Quando usare un “type” e quando usare un’interfaccia?

In generale, dovresti usare un “type” quando vuoi definire un tipo personalizzato o un alias per un tipo esistente. Dovresti usare un’interfaccia quando vuoi definire la forma di un oggetto o un’API che deve essere implementata.

Detto questo, la scelta tra “type” e interfaccia dipende anche dalle preferenze personali e dallo stile di codifica del tuo team. Inoltre, le interfacce sono spesso utilizzate quando si lavora con librerie esterne o API di terze parti che utilizzano già interfacce.

Matteo Curci

Computer engineer passionate about everything called Coding