Hoe TypeScript-klassen te gebruiken met eenvoudige voorbeelden
TypeScript brengt krachtige functies naar JavaScript, waaronder het concept van klassen, wat objectgeoriënteerd programmeren mogelijk maakt. Klassen bieden een blauwdruk voor het maken van objecten, het inkapselen van gegevens en het definiëren van gedragingen. Deze gids leidt u door de basisprincipes van TypeScript-klassen met eenvoudige voorbeelden.
Wat is een klasse?
Een klasse is een blauwdruk voor het maken van objecten met vooraf gedefinieerde eigenschappen en methoden. Het helpt bij het organiseren van code, het bevorderen van herbruikbaarheid en het maken van schaalbare applicaties. Klassen in TypeScript werken op een vergelijkbare manier als klassen in andere objectgeoriënteerde programmeertalen.
Een basisklasse definiëren
Om een klasse in TypeScript te definiëren, gebruikt u het trefwoord class
gevolgd door de klassenaam en een set accolades met eigenschappen en methoden.
Basisklasse voorbeeld
Hieronder ziet u een voorbeeld van een eenvoudige Person
-klasse met eigenschappen en een methode:
class Person {
name: string;
age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
greet(): void {
console.log(`Hello, my name is ${this.name} and I am ${this.age} years old.`);
}
}
const person1 = new Person("Alice", 30);
person1.greet(); // Output: Hello, my name is Alice and I am 30 years old.
In dit voorbeeld heeft de klasse Person
twee eigenschappen: name
en age
. De constructormethode initialiseert deze eigenschappen en de methode greet
geeft een begroetingsbericht weer.
Toegangsmodifiers
TypeScript biedt drie toegangsmodifiers om de zichtbaarheid van klasseleden te beheren:
public
: Leden zijn overal toegankelijk (standaard).private
: Leden zijn alleen toegankelijk binnen de klasse.protected
: Leden zijn toegankelijk binnen de klasse en haar subklassen.
Toegangsmodifiers gebruiken
Hier ziet u hoe u toegangsmodifiers in een TypeScript-klasse kunt gebruiken:
class Animal {
public name: string;
private age: number;
constructor(name: string, age: number) {
this.name = name;
this.age = age;
}
public getAge(): number {
return this.age;
}
}
const dog = new Animal("Buddy", 5);
console.log(dog.name); // Output: Buddy
console.log(dog.getAge()); // Output: 5
// console.log(dog.age); // Error: 'age' is private and only accessible within class 'Animal'.
In dit voorbeeld is naam
een openbare eigenschap die toegankelijk is van buiten de klasse, terwijl leeftijd
een privé-eigenschap is die alleen binnen de klasse toegankelijk is.
Overerving in TypeScript
TypeScript ondersteunt overerving, wat een klasse toestaat eigenschappen en methoden van een andere klasse over te erven. Dit helpt bij het hergebruiken van code en het creëren van een hiërarchie van klassen.
Erfenis voorbeeld
Hieronder ziet u een voorbeeld van een klasse Dog
die erft van de basisklasse Animal
:
class Animal {
constructor(public name: string) {}
makeSound(): void {
console.log(`${this.name} makes a sound.`);
}
}
class Dog extends Animal {
constructor(name: string) {
super(name); // Call the constructor of the base class
}
makeSound(): void {
console.log(`${this.name} barks.`);
}
}
const dog = new Dog("Buddy");
dog.makeSound(); // Output: Buddy barks.
In dit voorbeeld breidt de klasse Dog
de klasse Animal
uit en overschrijft de methode makeSound
.
Getters en Setters
Met TypeScript kunt u getters en setters voor eigenschappen definiëren, waardoor u gecontroleerde toegang tot klasseleden krijgt.
Getters en Setters Voorbeeld
class Person {
private _name: string;
constructor(name: string) {
this._name = name;
}
get name(): string {
return this._name;
}
set name(newName: string) {
if (newName) {
this._name = newName;
} else {
console.log("Name cannot be empty.");
}
}
}
const person = new Person("Alice");
console.log(person.name); // Output: Alice
person.name = "Bob";
console.log(person.name); // Output: Bob
In dit voorbeeld wordt de eigenschap name
benaderd en gewijzigd met behulp van de getter- en settermethoden.
Conclusie
TypeScript-klassen zijn een krachtige manier om objectgeoriënteerde code op een schone en efficiënte manier te schrijven. Ze bieden een gestructureerde manier om eigenschappen, methoden, toegangsmodifiers, overerving en meer te definiëren. Door te begrijpen hoe u TypeScript-klassen gebruikt, kunt u robuustere en onderhoudbare code voor uw toepassingen schrijven.