Bird
Raised Fist0
Typescriptprogramming~10 mins

Constructor parameter types in Typescript - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Constructor parameter types
Start: Create instance
↓
Call constructor with parameters
↓
Check parameter types
↓
Assign to properties
↓
Instance ready
When creating an object, TypeScript checks the types of constructor parameters before assigning them to properties.
Execution Sample
Typescript
class Person {
  name: string;
  age: number;
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
}
const p = new Person("Alice", 30);
This code creates a Person object with a name and age, checking types in the constructor.
Execution Table
StepActionParameter 'name' Type CheckParameter 'age' Type CheckAssign PropertiesResult
1Call constructor with ('Alice', 30)string ✓number ✓this.name = 'Alice', this.age = 30Instance created
2End of constructor---Object ready with name='Alice', age=30
💡 Constructor finishes after assigning valid typed parameters
Variable Tracker
VariableStartAfter constructor callFinal
this.nameundefined'Alice''Alice'
this.ageundefined3030
Key Moments - 2 Insights
Why does TypeScript check parameter types in the constructor?
TypeScript ensures the values passed match the declared types before assigning, preventing errors. See execution_table step 1 where 'name' and 'age' types are checked.
What happens if a wrong type is passed to the constructor?
TypeScript shows a compile-time error and stops. The assignment does not happen, so the object is not created. This is implied by the 'Invalid?' branch in concept_flow.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 1, what type is expected for the 'age' parameter?
Anumber
Bstring
Cboolean
Dany
💡 Hint
Check the 'Parameter 'age' Type Check' column in execution_table step 1
At which step are the constructor parameters assigned to object properties?
AStep 2
BBefore Step 1
CStep 1
DAfter Step 2
💡 Hint
Look at the 'Assign Properties' column in execution_table
If the 'name' parameter was passed as a number, what would happen?
AConstructor assigns it anyway
BTypeScript error stops compilation
CThe object is created with name as number
DThe program runs but with a warning
💡 Hint
Refer to concept_flow where invalid parameter types cause errors
Concept Snapshot
Constructor parameter types in TypeScript:
- Define types in constructor parameters
- TypeScript checks types when creating instances
- Correct types assign values to properties
- Wrong types cause compile-time errors
- Helps catch bugs early
Full Transcript
This visual execution shows how TypeScript checks constructor parameter types when creating an object. First, the constructor is called with parameters. TypeScript verifies each parameter matches the declared type. If valid, the values are assigned to the object's properties. If invalid, TypeScript stops with an error. The variable tracker shows how properties change from undefined to assigned values. This prevents bugs by ensuring only correct types are used when creating objects.

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

  1. 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.
  2. 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.
  3. Final Answer:

    It tells what kind of values the constructor expects when creating an object. -> Option D
  4. Quick Check:

    Constructor parameter types = Define expected input types [OK]
Hint: Constructor types define expected inputs clearly [OK]
Common Mistakes:
  • Thinking parameter types speed up runtime
  • Confusing parameter types with method creation
  • Believing parameter types rename classes
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

  1. Step 1: Review TypeScript constructor syntax

    In TypeScript, parameter types are declared after the parameter name with a colon, like name: string.
  2. 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.
  3. Final Answer:

    constructor(name: string, age: number) {} -> Option A
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    Alice 30 -> Option B
  4. 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

  1. Step 1: Check class properties and constructor assignments

  2. 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'.
  3. Final Answer:

    Class properties 'make' and 'year' are missing -> Option C
  4. Quick Check:

    Declare class properties before use [OK]
Hint: Declare properties before assigning in constructor [OK]
Common Mistakes:
  • Ignoring missing property declarations
  • Thinking constructor parameters auto-create properties
  • Expecting return type in constructor
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

  1. 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.
  2. Step 2: Evaluate each option

    constructor(title: string, pages: number, author?: string = '') {}: author?: string = '' -- omitting sets to '', not undefined. constructor(title: string, pages: number, author: string = '') {}: author: string = '' -- omitting sets to ''. constructor(title: string, pages: number, author: string) {} requires author. constructor(title: string, pages: number, author?: string) {}: author?: string -- omitting leaves undefined.
  3. Final Answer:

    constructor(title: string, pages: number, author?: string) {} -> Option A
  4. Quick Check:

    Optional params use ? after name [OK]
Hint: Use ? after parameter name for optional [OK]
Common Mistakes:
  • Using default value without ? for optional
  • Forgetting to mark optional parameters
  • Mixing optional and default syntax incorrectly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard