À propos de ce tutoriel
Si vous avez regardé un peu la documentation, vous avez du voir des exemples alterner entre les types et les interfaces. Même si dans beaucoup de cas les 2 peuvent être utilisés de manière interchangeable, il y a des différences qui vous feront choisir l'un ou l'autre.
Un type peut utiliser un type primaire
On peut avoir un type qui utilise des types de bases et des unions types.
type DateString = string
type Id = string | number
Ce n'est pas possible avec les interfaces, qui ne peuvent décrire que des objets.
Une interface peut être fusionnée
Une interface peut être définie plusieurs fois et les déclarations seront alors fusionnées.
interface Point {
x: number
}
interface Point {
y: number
}
// Point aura maintenant la forme {x:number, y:number}
C'est impossible avec les types, qui eux ne peuvent pas être modifiés une fois déclarés.
Une interface peut être implémentée par une classe
Lorsque l'on déclare une classe, il est possible d'indiquer que l'on implémente une interface de manière explicite.
class TwoDimensionalPoint implements Point {
constructor (private x: number, private y: number) {}
}