JOBSEEKER?

TypeScript Interview Questions

Practice for TypeScript interviews by solving TestDome questions. Our interview questions are used by more than 7,000 companies and 450,000 individual test takers.

Jobseekers: Certify Your Knowledge

Take a Certification Test

Companies: Use Our Tests for Screening

Buy a Pack Of Candidates

Need to practice your TypeScript programming skills for an upcoming job interview? Try solving these TypeScript interview questions that test knowledge of TypeScript programming concepts such as types, mixins, OOP, and other skills. We’ll provide feedback on your answers, and you can use a hint if you get stuck.

These TypeScript interview questions are examples of real tasks used by employers to screen job candidates such as TypeScript developers, JavaScript developers, front-end developers, and others that require knowledge of the TypeScript programming language and the benefits it offers in web page scalability and encapsulation.

1. Color Type

Arrays OOP
   
Easy  

The following code initializes three types representing the colors: red, green and blue.

type ColorType = [string, number, number, number];
let red: ColorType = ['Red', 1, 0, 0];
let green: [string, number, number, number] = ['Green', 0, 1, 0];
let blue = ['Blue', 0, 0, 1];

Select the statements that are correct.

(Select all acceptable answers.)

All three colors can have new elements of any type appended to them.
ColorType is an alias to a tuple.
All three colors would compile to the same JavaScript type signature.
ColorType is an array where the type of a fixed number of elements is known.
All three variables are immutable.
   


2. Uppercase Types

OOP Types
   
Easy  

The following code initializes strings as three different types and attempts to make them uppercase. Which statements about the behavior of the typescript compiler are correct?

let stringType: string = "string type";
stringType.toUpperCase();

let anyType: any = "any type";
anyType.toUpper();
anyType.toUpperCase();

let objectType: Object = "object type";
objectType.toUpperCase();

(Select all acceptable answers.)

The typescript compiler confirms that toUpperCase exists on the stringType instance.
The typescript compiler states that toUpper does not exist on the anyType instance;
The typescript compiler confirms that toUpperCase exists on the anyType instance.
The typescript compiler states that the toUpperCase function does not exist on the objectType instance.
The typescript compiler confirms that the toUpperCase function exists on the objectType instance.
   


3. Circle Inheritance

Inheritance OOP
   
Easy 

The Circle class is used in a prototype for a game engine. Finish the class so that:

  • It inherits from the GameObject class
  • It has one more public field, radius
  • It has only one constructor, that sets the radius, and sets the x and y fields using the GameObject class

For example, executing the following code:

let circle = new Circle(10, 50, 8);
console.log(circle.x, circle.y, circle.radius);

should print "10 50 8".

TypeScript 3.8.3  
 


  •   Example case: Wrong answer
  •   Circle inherits from GameObject: Wrong answer
  •   Circle has the radius variable: Wrong answer
  •   Circle has the correct constructor: Wrong answer


4. Check Digit

Strings
   
Easy 

Your company assigns each customer a membership ID, and you are implementing a check digit for those IDs.

The check digit should be calculated by adding up all digits in each membership ID. If the result of the sum is a number with more than a single digit, another iteration is required, and the digits of the result should also be added together. This process should repeat until a single-digit number is calculated.

For example, for the membership ID "55555" the sum of all digits is 25. Because this is not a single-digit number, 2 and 5 would be added, and the result, 7, would be the check digit.

TypeScript 3.8.3  
 


  •   Example case: Wrong answer
  •   Single iteration required: Wrong answer
  •   Two iterations required: Wrong answer
  •   Multiple iterations required: Wrong answer


5. Permission Enum

Enum Enum flags
   
Easy 

Extend the Permission enum so that it has the following fields:

  • Read, which should have a value of 1
  • Write, which should have a value of 2
  • Execute, which should have a value of 4

Extend the getPermissionList function so that it accepts a combination of several Permission enums and returns an array of strings which are the names of the Permissions.

For example, executing:

getPermissionList(Permission.Read | Permission.Write);

should return [ 'Read', 'Write' ] in any order.

TypeScript 3.8.3  
 


  •   Example case: Wrong answer
  •   The Permission enum has correct values: Wrong answer
  •   getPermissionList is called with a Permission: Wrong answer
  •   getPermissionList is called with a combination of Permissions: Wrong answer


6. Positionable

Mixins OOP
   
Hard  

Consider the following two base classes, Positionable and Rotatable, and MovingObject derived class:

class Positionable {
    locationX: number;
    locationY: number;
}

class Rotatable {
    orientation: number;
    rotate(orientation: number) {
        this.orientation += orientation;
    }
    align(rotatable: Rotatable) {
        this.orientation = rotatable.orientation;
    }
}

class MovingObject implements Positionable, Rotatable {
    locationX: number = 0;
    locationY: number = 0;
    orientation: number = 0;
    rotate: (orientation: number) => void;
}

applyMixins(MovingObject, [Positionable, Rotatable]);
function applyMixins(derivedCtor: any, baseCtors: any[]) {
    baseCtors.forEach(baseCtor => {
        Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
            derivedCtor.prototype[name] = baseCtor.prototype[name];
        });
    });
}

let mover = new MovingObject(); 
mover.rotate(30);

Select the statements that are correct.

(Select all acceptable answers.)

The applyMixins function applies the implementations of Positionable and Rotatable to MovingObject.
The TypeScript compiler will highlight that the property 'align' is missing for the type MovingObject.
As the MovingObject implements Rotatable, the call to mover.rotate(30) will do nothing.
The Positionable class could be changed to an interface without causing any compiler errors.
The properties of MovingObject are required as stand-ins to satisfy the TypeScript compiler.
   


If you feel ready, take one of our timed public TypeScript Interview Questions tests:
HTML/CSS

HTML/CSS, Angular, TypeScript, and Node.js Online Test (Easy / Hard)

HTML/CSS, Angular, TypeScript, Node.js, and SQL Online Test (Easy / Hard)

Angular

Angular and TypeScript Online Test (Easy / Hard)

TypeScript

TypeScript and JavaScript Online Test (Easy / Hard)

Not exactly what you are looking for? Go to our For Jobseekers section.
Dashboard Start Trial Sign In Home Tour Tests Questions Pricing For Jobseekers