📖 Scenario: You are creating a simple program to manage a library's book records. Each book has a title and a number of pages.
🎯 Goal: Build a TypeScript class Book that uses constructor parameter types to store the title and page count of a book.
📋 What You'll Learn
Create a class called Book
Add a constructor with parameters title (string) and pages (number)
Store the parameters as public properties
Create an instance of Book with title 'The Hobbit' and pages 310
Print the book's title and pages
💡 Why This Matters
🌍 Real World
Classes with typed constructor parameters are common in real-world TypeScript programs to model data clearly and safely.
💼 Career
Understanding constructor parameter types helps you write clean, maintainable code in professional TypeScript projects.
Progress0 / 4 steps
1
Create the Book class with constructor parameters
Create a class called Book with a constructor that has two parameters: title of type string and pages of type number. Store these parameters as public properties directly in the constructor.
Typescript
Hint
Use public before the constructor parameters to automatically create properties.
2
Create a Book instance
Create a variable called myBook and assign it a new Book object with the title 'The Hobbit' and pages 310.
Typescript
Hint
Use new Book('The Hobbit', 310) to create the instance.
3
Access and print the book's properties
Use console.log to print the book's title and pages in the format: Title: The Hobbit, Pages: 310. Access the properties myBook.title and myBook.pages.
Typescript
Hint
Use a template string with backticks to format the output.
4
Run the program to see the output
Run the program to display the book's title and pages exactly as: Title: The Hobbit, Pages: 310.
Typescript
Hint
Check your console output matches exactly.
Practice
(1/5)
1. What does specifying parameter types in a TypeScript class constructor do?
easy
A. It changes the class name based on parameters.
B. It runs the constructor faster at runtime.
C. It automatically creates getter and setter methods.
D. It tells what kind of values the constructor expects when creating an object.
Solution
Step 1: Understand constructor parameter types
Constructor parameter types define what type of values the constructor expects to receive when creating an instance of the class.
Step 2: Identify the purpose of parameter types
They help TypeScript check for errors before running the code by ensuring the right types are passed.
Final Answer:
It tells what kind of values the constructor expects when creating an object. -> Option D
2. Which of the following is the correct way to declare a constructor with typed parameters in TypeScript?
easy
A. constructor(name: string, age: number) {}
B. constructor(name string, age number) {}
C. constructor(name, age) : string, number {}
D. constructor(name => string, age => number) {}
Solution
Step 1: Review TypeScript constructor syntax
In TypeScript, parameter types are declared after the parameter name with a colon, like name: string.
Step 2: Check each option
constructor(name: string, age: number) {} uses correct syntax with colons and types. Options A, C, and D use invalid syntax.
Final Answer:
constructor(name: string, age: number) {} -> Option A
Quick Check:
Parameter types use colon syntax [OK]
Hint: Use colon after parameter name for types [OK]
Common Mistakes:
Omitting colons between name and type
Using commas or arrows instead of colons
Placing types after parentheses
3. What will be the output of this TypeScript code?
class Person {
constructor(public name: string, private age: number) {}
getAge() { return this.age; }
}
const p = new Person('Alice', 30);
console.log(p.name);
console.log(p.getAge());
medium
A. Error: age is private
B. Alice
30
C. Alice
undefined
D. undefined
30
Solution
Step 1: Understand public and private in constructor
The public name creates a public property accessible outside. The private age creates a private property accessible only inside the class.
Step 2: Check console.log outputs
p.name prints 'Alice' because it's public. p.getAge() returns 30 because the method accesses private age internally.
Final Answer:
Alice
30 -> Option B
Quick Check:
Public accessible, private via method [OK]
Hint: Public props accessible directly, private via methods [OK]
Common Mistakes:
Expecting private properties accessible outside
Confusing undefined with private access
Thinking private causes runtime error
4. Identify the error in this TypeScript class constructor:
class Car {
constructor(make: string, year: number) {
this.make = make;
this.year = year;
}
}
medium
A. Constructor must have return type declared
B. Cannot assign parameters to 'this' inside constructor
C. Class properties 'make' and 'year' are missing
D. Missing type for parameter 'year' in constructor
Solution
Step 1: Check class properties and constructor assignments
Step 2: Check class properties
The class does not declare properties 'make' and 'year' before assigning them in the constructor, which causes an error: Property 'make' does not exist on type 'Car'.
Final Answer:
Class properties 'make' and 'year' are missing -> Option C
Quick Check:
Declare class properties before use [OK]
Hint: Declare properties before assigning in constructor [OK]
5. You want to create a class Book that takes a title (string), pages (number), and an optional author (string). Which constructor declaration correctly types these parameters and allows creating a Book by omitting the author argument (leaving author as undefined)?
hard
A. constructor(title: string, pages: number, author?: string) {}
B. constructor(title: string, pages: number, author: string = '') {}
C. constructor(title: string, pages: number, author: string) {}
D. constructor(title: string, pages: number, author?: string = '') {}
Solution
Step 1: Understand optional parameters in TypeScript
Optional parameters are marked with a question mark ? after the parameter name, allowing them to be omitted when calling the constructor, leaving the parameter undefined.