Constructeurs
Il est redondant d'écrire trois lignes pour chaque objet afin de définir les coordonnées d'une position, il serait beaucoup plus logique de les définir au moment de créer l'objet.
De plus, une position n'a pas tellement de sens sans les coordonnées qui y sont rattachées.
Pour cela, nous pouvons définir un constructeur.
class Position {
x: number;
y: number;
z: number;
constructor(x: number, y: number, z: number) {
this.x = x;
this.y = y;
this.z = z;
}
equals(position: Position): boolean {
return this.x == position.x && this.y == position.y && this.z == position.z;
}
}
let p1 = new Position(2, 2, 1);
let p2 = new Position(3, 3, 1);
console.log(p1.equals(p2)); // false
Nous aurions aussi pu définir les paramètres comme optionnels et définir des valeurs par défaut.
class Position {
x: number;
y: number;
z: number;
constructor(x?: number, y?: number, z?: number) {
this.x = x || 0;
this.y = y || 0;
this.z = z || 0;
}
equals(position: Position): boolean {
if(this.x == position.x && this.y == position.y && this.z == position.z)
return true;
return false;
}
}
let p1 = new Position();
console.log('x:' + p1.x + ' y:' + p1.y + ' z:' + p1.z); // x:0 y:0 z:0