Creazione di classi
In TypeScript, le classi possono essere create utilizzando la sintassi delle classi di JavaScript, ovvero class ClassName { ... }
. Le classi possono contenere proprietà, metodi e costruttori, e possono essere utilizzate per creare oggetti che rappresentano entità del mondo reale.
class 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.`);
}
}
let person = new Person("Giovanni Pace", 36);
person.greet();
Ereditarietà
In TypeScript, le classi possono ereditare le proprietà e i metodi da altre classi utilizzando la sintassi dell’operatore extends
. Questo consente di creare gerarchie di classi e di evitare la duplicazione del codice.
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
static move(animal: Animal, distance: number = 0) {
console.log(`${animal.name} ha percorso ${distance} metri.`);
}
}
class Dog extends Animal {
bark() {
console.log(`${this.name} sta abbaiando.`);
}
}
let dog = new Dog("Fido");
dog.bark();
Animal.move(dog, 10);
Modificatori di accesso
In TypeScript, i modificatori di accesso possono essere utilizzati per specificare la visibilità delle proprietà e dei metodi delle classi. Ci sono tre modificatori di accesso disponibili: public
, private
e protected
. Il modificatore di accesso public
è il valore predefinito, il che significa che le proprietà e i metodi sono accessibili ovunque. Il modificatore di accesso private
rende le proprietà e i metodi accessibili solo all’interno della classe, mentre il modificatore di accesso protected
rende le proprietà e i metodi accessibili alle classi figlie.
class Person {
private name: string;
constructor(name: string) {
this.name = name;
}
getName() {
return this.name;
}
setName(name: string) {
this.name = name;
}
}
class Employee extends Person {
private salary: number;
constructor(name: string, salary: number) {
super(name);
this.salary = salary;
}
getSalary() {
return this.salary;
}
}
let employee = new Employee("Giovanni", 100000);
console.log(employee.getName()); // OK, getName è pubblico
employee.setName("Mario"); // ERRORE, setName è privato
console.log(employee.getSalary()); // OK, getSalary è protetto
Metodi statici
In TypeScript, i metodi statici possono essere definiti all’interno delle classi utilizzando la parola chiave static
. I metodi statici sono metodi che possono essere richiamati direttamente sulla classe, senza la necessità di creare un’istanza della classe.
class Math {
static sum(num1: number, num2: number): number {
return num1 + num2;
}
}
console.log(Math.sum(2, 3)); // 5