TypeScript Constructor Initialization
TypeScript Classes and OOP : Exercise-8 with Solution
Write a TypeScript class called Student with properties name and age. Implement a constructor that initializes these properties when a Student object is created. Additionally, add validation to ensure that the age provided is a positive number. If the age is not positive, set it to a default value of 0.
Sample Solution:
TypeScript Code:
class Student {
// Properties
name: string;
age: number;
// Constructor with validation
constructor(name: string, age: number) {
this.name = name;
// Validate and set the age property
if (age > 0) {
this.age = age;
} else {
// Default to 0 if age is not positive
this.age = 0;
}
}
}
// Create Student objects with different ages
const student1 = new Student("Erland Clive", 22); // Age is positive
const student2 = new Student("Bastet Aneta", -7); // Age is not positive
// Access and print the properties
console.log("Student 1 - Name:", student1.name, "Age:", student1.age); // Output: Student 1 - Name: Erland Clive Age: 22
console.log("Student 2 - Name:", student2.name, "Age:", student2.age); // Output: Student 2 - Name: Bastet Aneta Age: 0 (default)
Explanations:
In the exercise above -
- First we define the "Student" class with properties 'name' and 'age'.
- The constructor for the "Student" class takes two parameters: 'name' and 'age'. Inside the constructor, we set the 'name' property to the provided name.
- Include validation to ensure that the 'age' provided is a positive number. If the 'age' is greater than 0, we set the 'age' property to that value. Otherwise, we default the 'age' property to 0.
- Next, we create two "Student" objects with different ages, including one with a negative age to demonstrate validation and default value assignment.
- Finally, we access and print the properties of both 'Student' objects to verify that they have been initialized correctly. The validation and default assignment work as expected.
Output:
"Student 1 - Name:" "Erland Clive" "Age:" 22 "Student 2 - Name:" "Bastet Aneta" "Age:" 0
TypeScript Editor:
See the Pen TypeScript by w3resource (@w3resource) on CodePen.
Previous: TypeScript Derived Class Constructor.
Next: TypeScript Basic Inheritance.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics