Bird
Raised Fist0
Typescriptprogramming~10 mins

Implementing interfaces in classes 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 that the class implements the interface.

Typescript
interface Animal {
  makeSound(): void;
}

class Dog implements Animal {
  makeSound() {
    console.log('Woof!');
  }
}
Drag options to blanks, or click blank then click option'
Ainherits
Bextends
Cuses
Dimplements
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'extends' instead of 'implements' for interfaces.
Forgetting to add the keyword before the interface name.
2fill in blank
medium

Complete the code to add a property from the interface to the class.

Typescript
interface Vehicle {
  wheels: number;
  drive(): void;
}

class Car implements Vehicle {
  [1]: number = 4;
  drive() {
    console.log('Driving');
  }
}
Drag options to blanks, or click blank then click option'
AwheelCount
Bwheels
CnumWheels
Dcount
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different property name than the interface.
Forgetting to declare the property at all.
3fill in blank
hard

Fix the error by completing the method signature to match the interface.

Typescript
interface Speaker {
  speak(words: string): void;
}

class Person implements Speaker {
  speak([1]) {
    console.log(words);
  }
}
Drag options to blanks, or click blank then click option'
Awords: string
Bwords
Cmessage: number
Dtext: string
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different parameter name.
Omitting the type annotation.
Using wrong type like number instead of string.
4fill in blank
hard

Fill both blanks to complete the class implementing the interface with a constructor.

Typescript
interface User {
  name: string;
  age: number;
}

class Member implements User {
  [1]: string;
  [2]: number;

  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
}
Drag options to blanks, or click blank then click option'
Aname
Busername
Cage
Dyears
Attempts:
3 left
💡 Hint
Common Mistakes
Using different property names than the interface.
Forgetting to declare both properties.
5fill in blank
hard

Fill all three blanks to implement the interface with a method and property.

Typescript
interface Logger {
  level: string;
  log(message: string): void;
}

class ConsoleLogger implements Logger {
  [1]: string = 'info';

  [2](message: string): void {
    console.log(`[$[3]] ${message}`);
  }
}
Drag options to blanks, or click blank then click option'
Alevel
Blog
Cthis.level
Dmessage
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong property or method names.
Not using this to access the property inside the method.
Missing the method parameter.

Practice

(1/5)
1. What does the implements keyword do in a TypeScript class?
easy
A. It ensures the class follows the structure defined by an interface.
B. It creates a new interface inside the class.
C. It imports an interface from another file.
D. It automatically generates methods for the class.

Solution

  1. Step 1: Understand the role of interfaces

    Interfaces define a contract of properties and methods that a class must have.
  2. Step 2: Role of implements keyword

    The implements keyword makes sure the class follows that contract exactly.
  3. Final Answer:

    It ensures the class follows the structure defined by an interface. -> Option A
  4. Quick Check:

    implements enforces interface structure [OK]
Hint: Remember: implements means 'follow the interface rules' [OK]
Common Mistakes:
  • Thinking implements creates or imports interfaces
  • Believing implements auto-generates code
  • Confusing implements with extends
2. Which of the following is the correct syntax to make a class Car implement an interface Vehicle?
easy
A. interface Car implements Vehicle {}
B. class Car implements Vehicle {}
C. class Car extends Vehicle {}
D. class Car uses Vehicle {}

Solution

  1. Step 1: Identify correct keywords for class and interface

    Classes use the keyword implements to follow interfaces.
  2. Step 2: Check syntax correctness

    class Car implements Vehicle {} is the correct way to declare this.
  3. Final Answer:

    class Car implements Vehicle {} -> Option B
  4. Quick Check:

    Class uses implements for interfaces [OK]
Hint: Use 'implements' keyword after class name for interfaces [OK]
Common Mistakes:
  • Using extends instead of implements for interfaces
  • Trying to implement interface in interface declaration
  • Using 'uses' keyword which doesn't exist
3. What will be the output of this code?
interface Animal {
  name: string;
  speak(): string;
}

class Dog implements Animal {
  name: string;
  constructor(name: string) {
    this.name = name;
  }
  speak() {
    return `${this.name} says woof`;
  }
}

const dog = new Dog('Buddy');
console.log(dog.speak());
medium
A. undefined
B. "Dog says woof"
C. "Buddy says woof"
D. Error: Dog does not implement speak()

Solution

  1. Step 1: Check class implements interface correctly

    Dog class has property name and method speak() as required.
  2. Step 2: Understand method output

    speak() returns a string with the dog's name and 'says woof'.
  3. Final Answer:

    "Buddy says woof" -> Option C
  4. Quick Check:

    Method returns correct string with name [OK]
Hint: Look for method return values matching console.log output [OK]
Common Mistakes:
  • Assuming missing method error when method exists
  • Confusing property values with method output
  • Ignoring string template usage
4. Identify the error in this code:
interface Shape {
  area(): number;
}

class Circle implements Shape {
  radius: number;
  constructor(radius: number) {
    this.radius = radius;
  }
  area(): string {
    return (Math.PI * this.radius * this.radius).toFixed(2);
  }
}
medium
A. Method area() returns string instead of number.
B. Missing constructor in Circle class.
C. radius property is not declared.
D. Circle should extend Shape, not implement.

Solution

  1. Step 1: Check interface method signature

    Interface Shape requires area() to return a number.
  2. Step 2: Compare with class method return type

    Circle's area() returns a string because toFixed() returns string.
  3. Final Answer:

    Method area() returns string instead of number. -> Option A
  4. Quick Check:

    Return type must match interface [OK]
Hint: Match method return types exactly with interface [OK]
Common Mistakes:
  • Returning string when interface expects number
  • Forgetting to declare properties
  • Using extends instead of implements for interfaces
5. You have two interfaces:
interface Printer {
  print(): void;
}
interface Scanner {
  scan(): void;
}

How can you create a class AllInOneMachine that implements both interfaces correctly?
hard
A. interface AllInOneMachine implements Printer, Scanner {}
B. class AllInOneMachine implements Printer { print() { console.log('Printing'); } scan() { console.log('Scanning'); } }
C. class AllInOneMachine extends Printer, Scanner { print() { console.log('Printing'); } scan() { console.log('Scanning'); } }
D. class AllInOneMachine implements Printer, Scanner { print() { console.log('Printing'); } scan() { console.log('Scanning'); } }

Solution

  1. Step 1: Understand multiple interface implementation

    TypeScript allows a class to implement multiple interfaces separated by commas.
  2. Step 2: Check class methods match all interfaces

    Class must have both print() and scan() methods.
  3. Final Answer:

    class AllInOneMachine implements Printer, Scanner { print() { console.log('Printing'); } scan() { console.log('Scanning'); } } -> Option D
  4. Quick Check:

    Multiple interfaces implemented with comma [OK]
Hint: Use comma to implement multiple interfaces in one class [OK]
Common Mistakes:
  • Using extends instead of implements for interfaces
  • Implementing only one interface but adding all methods
  • Trying to implement interfaces in interface declaration
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