TypeScript-objecten eenvoudig gemaakt voor beginners
Objecten zijn een fundamenteel onderdeel van JavaScript en TypeScript. Ze stellen u in staat om gerelateerde data en functies te groeperen, wat een manier biedt om real-world entiteiten in uw code te modelleren. TypeScript verbetert JavaScript-objecten met typesafety, waardoor uw code voorspelbaarder en gemakkelijker te onderhouden wordt. Deze gids vereenvoudigt het concept van TypeScript-objecten voor beginners.
Wat is een object in TypeScript?
Een object is een verzameling van sleutel-waardeparen, waarbij sleutels strings (of symbolen) zijn en waarden van elk type kunnen zijn. In TypeScript kunt u de vorm van een object definiëren met behulp van typen of interfaces, zodat het object een specifieke structuur volgt.
Eenvoudige objecten definiëren in TypeScript
Laten we beginnen met het definiëren van een eenvoudig object in TypeScript. Dit is vergelijkbaar met hoe u objecten definieert in JavaScript, maar met het extra voordeel van typesafety.
Basisobject voorbeeld
Hier ziet u hoe u een eenvoudig object in TypeScript definieert:
const person: { name: string; age: number } = {
name: "Alice",
age: 25
};
console.log(person.name); // Output: Alice
console.log(person.age); // Output: 25
In dit voorbeeld heeft het object person
twee eigenschappen: name
(van het type string
) en age
(van het type number
). TypeScript zorgt ervoor dat het object zich aan deze structuur houdt.
Interfaces gebruiken om objectstructuur te definiëren
Een interface is een krachtige feature in TypeScript die de vorm van een object definieert. Interfaces bieden een manier om contracten te definiëren binnen uw code, zodat objecten zich aan een specifieke structuur houden.
Een interface definiëren
Hier ziet u hoe u een interface gebruikt om de structuur van een object te definiëren:
interface Person {
name: string;
age: number;
}
const person: Person = {
name: "Bob",
age: 30
};
console.log(person.name); // Output: Bob
console.log(person.age); // Output: 30
In dit voorbeeld definieert de interface Person
de structuur van een person-object. De variabele person
moet zich aan deze structuur houden, anders genereert TypeScript een fout.
Optionele eigenschappen in objecten
Met TypeScript kunt u optionele eigenschappen in objecten definiëren met behulp van het symbool ?
. Optionele eigenschappen kunnen worden weggelaten bij het maken van objecten, wat flexibiliteit biedt in de manier waarop u objectstructuren definieert.
Voorbeeld met optionele eigenschappen
Hier is een voorbeeld waarbij de eigenschap telefoonnummer
optioneel is:
interface Employee {
name: string;
age: number;
phoneNumber?: string; // Optional property
}
const employee1: Employee = {
name: "John",
age: 28
};
const employee2: Employee = {
name: "Doe",
age: 32,
phoneNumber: "123-456-7890"
};
console.log(employee1.phoneNumber); // Output: undefined
console.log(employee2.phoneNumber); // Output: 123-456-7890
In dit voorbeeld heeft employee1
geen phoneNumber
-eigenschap, terwijl employee2
dat wel heeft. Beide zijn geldig volgens de Employee
-interface.
Alleen-lezen eigenschappen in objecten
Met TypeScript kunt u eigenschappen readonly maken, zodat ze niet meer gewijzigd kunnen worden nadat het object is gemaakt. Dit is handig voor het maken van onveranderlijke objecten.
Voorbeeld met alleen-lezen eigenschappen
Hier ziet u hoe u alleen-lezen-eigenschappen definieert:
interface Car {
readonly brand: string;
model: string;
}
const car: Car = {
brand: "Toyota",
model: "Camry"
};
// car.brand = "Honda"; // Error: Cannot assign to 'brand' because it is a read-only property
car.model = "Corolla"; // Valid
console.log(car.model); // Output: Corolla
In dit voorbeeld is de eigenschap brand
gemarkeerd als readonly
. Elke poging om deze te wijzigen resulteert in een compile-time error.
Geneste objecten in TypeScript
TypeScript-objecten kunnen worden genest, wat betekent dat een object een ander object als eigenschap kan bevatten. Dit is gebruikelijk in complexe datastructuren.
Voorbeeld van geneste objecten
Hier is een voorbeeld van een genest object:
interface Address {
street: string;
city: string;
zipCode: string;
}
interface User {
name: string;
age: number;
address: Address; // Nested object
}
const user: User = {
name: "Emily",
age: 27,
address: {
street: "123 Main St",
city: "New York",
zipCode: "10001"
}
};
console.log(user.address.city); // Output: New York
In dit voorbeeld heeft de User
-interface een genest Address
-object. Het user
-object volgt deze structuur, waardoor toegang tot geneste eigenschappen mogelijk is.
Conclusie
Objecten in TypeScript zijn krachtiger en flexibeler dan gewone JavaScript-objecten vanwege typedefinities, optionele eigenschappen, readonly-eigenschappen en geneste structuren. Door objecten te definiëren met behulp van interfaces, kunt u robuustere en foutloze code maken. Begin met het gebruiken van TypeScript-objecten in uw projecten om de volledige kracht van typesafety en gestructureerde gegevens te benutten.