Challenge: Interfaces, Classes, Inheritance, and Modules

Test your understanding of interfaces, classes, inheritance, and modules in TypeScript by applying your knowledge to real problems.


In this challenge, we’ll be able to test our understanding of interfaces, classes, inheritance, and modules in TypeScript. By applying our knowledge of TypeScript, we’ll learn how to make our code more reliable, maintainable, and scalable.

We’ll start by testing our understanding of interfaces and how they can help us define contracts between different parts of our code. Then, we’ll explore how classes can create reusable code that can be customized as needed. Next, we’ll look at inheritance, one of the most powerful features of object-oriented programming, and see how it can help us build complex applications with ease. Finally, we’ll discuss modules, a mechanism that allows us to organize our code into logical units and improve code reusability.

Using an interface

We are given an object user that represents a user in a video game. Your task is to implement the hasProperty function, which takes two arguments:

  • obj: An object that implements the User interface.

  • prop: A string representing the property to check for.

The User interface should have the following properties:

  • username: A string representing the user’s username.
  • email: A string representing the user’s email address.
  • ranks: An array of strings representing the user’s ranks in different modes.

The hasProperty function should return true if the prop exists in the obj, otherwise false.

Get hands-on with 1200+ tech skills courses.