Bird
Raised Fist0
Typescriptprogramming~10 mins

Parameter properties shorthand in Typescript - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a class with a constructor that uses parameter properties shorthand to create a public property.

Typescript
class Person {
  constructor(public [1]: string) {}
}

const p = new Person("Alice");
console.log(p.name);
Drag options to blanks, or click blank then click option'
Aage
Bname
Cvalue
Dtitle
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting to add public before the parameter.
Using a different parameter name than the property you want.
2fill in blank
medium

Complete the code to create a private property using parameter properties shorthand.

Typescript
class Car {
  constructor(private [1]: number) {}
  getSpeed() {
    return this.speed;
  }
}

const car = new Car(100);
console.log(car.getSpeed());
Drag options to blanks, or click blank then click option'
Aspeed
Bdistance
Ctime
Dpower
Attempts:
3 left
💡 Hint
Common Mistakes
Using a public or protected keyword instead of private.
Choosing a parameter name unrelated to the property.
3fill in blank
hard

Fix the error in the constructor by using parameter properties shorthand correctly.

Typescript
class Book {
  title: string;
  constructor([1]: string) {
    this.title = title;
  }
}

const b = new Book("My Book");
console.log(b.title);
Drag options to blanks, or click blank then click option'
Atitle
Bprivate title
Cpublic title
Dreadonly title
Attempts:
3 left
💡 Hint
Common Mistakes
Not adding any visibility keyword.
Trying to assign the parameter without declaring the property.
4fill in blank
hard

Fill both blanks to create a readonly property using parameter properties shorthand and access it in a method.

Typescript
class User {
  constructor([1] [2]: string) {}
  getUsername() {
    return this.username;
  }
}

const user = new User("john_doe");
console.log(user.getUsername());
Drag options to blanks, or click blank then click option'
Areadonly
Busername
Cpublic
Dprivate
Attempts:
3 left
💡 Hint
Common Mistakes
Using private instead of readonly.
Using a different property name than the one accessed.
5fill in blank
hard

Fill all three blanks to create a protected property with parameter properties shorthand, initialize it, and access it in a subclass.

Typescript
class Animal {
  constructor([1] [2]: string) {}
}

class Dog extends Animal {
  getType() {
    return this.[3];
  }
}

const dog = new Dog("mammal");
console.log(dog.getType());
Drag options to blanks, or click blank then click option'
Aprotected
Btype
Dprivate
Attempts:
3 left
💡 Hint
Common Mistakes
Using private which blocks subclass access.
Using different names for the property in constructor and method.

Practice

(1/5)
1. What does the parameter properties shorthand in TypeScript do inside a class constructor?
easy
A. It automatically generates getter and setter methods.
B. It declares global variables outside the class.
C. It creates and assigns class properties in one step using access modifiers.
D. It imports external modules into the class.

Solution

  1. Step 1: Understand parameter properties shorthand

    Parameter properties shorthand uses access modifiers like public, private, or protected before constructor parameters to create and assign class properties automatically.
  2. Step 2: Compare with other options

    Options B, C, and D describe unrelated features: global variables, getter/setter methods, and module imports, which are not related to parameter properties shorthand.
  3. Final Answer:

    It creates and assigns class properties in one step using access modifiers. -> Option C
  4. Quick Check:

    Parameter properties shorthand = create and assign properties [OK]
Hint: Look for access modifiers before constructor parameters [OK]
Common Mistakes:
  • Confusing shorthand with getter/setter methods
  • Thinking it declares global variables
  • Assuming it imports modules
2. Which of the following is the correct syntax to use parameter properties shorthand in a TypeScript class constructor?
easy
A. constructor(public name: string) { }
B. constructor(name: string) { this.name = name; }
C. constructor(private name) { this.name = name; }
D. constructor(name: string public) { }

Solution

  1. Step 1: Identify correct parameter properties syntax

    The correct syntax places an access modifier (public, private, protected) before the parameter name and type inside the constructor, like constructor(public name: string) { }.
  2. Step 2: Check other options for errors

    constructor(name: string) { this.name = name; } lacks shorthand (no access modifier). constructor(private name) { this.name = name; } misses the type annotation. constructor(name: string public) { } has incorrect modifier placement after the type.
  3. Final Answer:

    constructor(public name: string) { } -> Option A
  4. Quick Check:

    Access modifier before parameter = correct syntax [OK]
Hint: Access modifier must come before parameter name and type [OK]
Common Mistakes:
  • Placing access modifier after type
  • Omitting type annotation
  • Not using access modifier at all
3. What will be the output of this TypeScript code?
class Person {
  constructor(private name: string) {}
  greet() {
    return `Hello, ${this.name}!`;
  }
}
const p = new Person('Anna');
console.log(p.greet());
medium
A. Hello, !
B. Hello, undefined!
C. Error: Property 'name' does not exist
D. Hello, Anna!

Solution

  1. Step 1: Understand private parameter property

    The constructor uses private name: string, which creates and assigns a private property name automatically.
  2. Step 2: Check greet method output

    The greet() method accesses this.name and returns "Hello, Anna!" because the property was set correctly.
  3. Final Answer:

    Hello, Anna! -> Option D
  4. Quick Check:

    Private property set by constructor = correct output [OK]
Hint: Private properties set by constructor are accessible inside class [OK]
Common Mistakes:
  • Assuming private means inaccessible inside class
  • Expecting undefined because no explicit assignment
  • Confusing property with parameter
4. Identify the error in this TypeScript class using parameter properties shorthand:
class Car {
  constructor(public model) {}
}
const c = new Car('Tesla');
console.log(c.model);
medium
A. Property 'model' is not accessible outside the class.
B. Missing type annotation for parameter 'model'.
C. Cannot use public modifier in constructor.
D. Constructor must have a return type.

Solution

  1. Step 1: Check parameter properties syntax

    The constructor parameter model uses public but lacks a type annotation, which is required in TypeScript.
  2. Step 2: Verify other options

    Cannot use public modifier in constructor. is wrong because public modifier is allowed. Property 'model' is not accessible outside the class. is wrong because public makes property accessible. Constructor must have a return type. is wrong because constructors do not have return types.
  3. Final Answer:

    Missing type annotation for parameter 'model'. -> Option B
  4. Quick Check:

    Parameter properties require type annotations [OK]
Hint: Always add type after parameter in constructor shorthand [OK]
Common Mistakes:
  • Omitting type annotation
  • Thinking public is invalid in constructor
  • Expecting constructor to have return type
5. You want to create a TypeScript class Book that stores title and author as public properties using parameter properties shorthand. Which code correctly implements this and allows creating a Book instance with both properties set?
hard
A. class Book { constructor(public title: string, public author: string) {} }
B. class Book { constructor(public title: string, author: string) {} }
C. class Book { constructor(title: string, author: string) { this.title = title; this.author = author; } }
D. class Book { constructor(title: string, public author: string) {} }

Solution

  1. Step 1: Identify correct use of parameter properties shorthand

    Both title and author must have access modifiers (public) before their parameters to create public properties automatically.
  2. Step 2: Evaluate each option

    class Book { constructor(public title: string, author: string) {} } only makes title public; author is just a parameter, not a property. class Book { constructor(public title: string, public author: string) {} } correctly uses public for both. class Book { constructor(title: string, author: string) { this.title = title; this.author = author; } } does not use shorthand but tries to assign properties without declaring them, causing errors. class Book { constructor(title: string, public author: string) {} } only makes author public, title is missing.
  3. Final Answer:

    class Book { constructor(public title: string, public author: string) {} } -> Option A
  4. Quick Check:

    Use public before all parameters to create properties [OK]
Hint: Add public before every parameter to create properties [OK]
Common Mistakes:
  • Adding public to only some parameters
  • Assigning properties without declaring them
  • Mixing shorthand with manual assignments 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