Brook Preloader

Le interfacce, implementazione e tipizzazione

Creazione di interfacce

In TypeScript, le interfacce possono essere create utilizzando la sintassi interface InterfaceName { ... }. Le interfacce possono essere utilizzate per definire un contratto per gli oggetti e per garantire che gli oggetti implementino determinate proprietà e metodi.

 

interface Person {
  name: string;
  age: number;
  hello(): void;
}

 

Implementazione di interfacce

In TypeScript, le interfacce possono essere implementate dalle classi utilizzando la sintassi class ClassName implements InterfaceName { ... }. Ciò garantisce che la classe implementi tutte le proprietà e i metodi dell’interfaccia.

 

class Student implements Person {
  name: string;
  age: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }

  hello() {
    console.log(`Ciao, sono ${this.name} e ho ${this.age} anni.`);
  }
}

 

Utilizzo di interfacce per la tipizzazione

In TypeScript, le interfacce possono essere utilizzate per la tipizzazione degli oggetti. Ciò consente di specificare il tipo di un oggetto utilizzando un’interfaccia e di garantire che l’oggetto implementi tutte le proprietà e i metodi dell’interfaccia.

 

function greetPerson(person: Person) {
  person.greet();
}

let student = new Student("Giovanni Pace", 36);
greetPerson(student); // Student implementa l'interfaccia Person

In questo esempio, la funzione greetPerson accetta un argomento di tipo Person, il che significa che può accettare qualsiasi oggetto che implementi l’interfaccia Person. L’oggetto student viene creato come un’istanza della classe Student, che implementa l’interfaccia Person, quindi può essere passato alla funzione greetPerson.