![]() |
VOOZH | about |
TypeScript instanceof operator is used for type narrowing, allowing us to check whether an object is an instance of a specific class or constructor function. When we use instanceof in a conditional statement, TypeScript narrows the type of a variable based on the result of the check.
if (objectToCheck instanceof ConstructorFunction) {
// Code block to execute if 'objectToCheck' is an instance of 'ConstructorFunction'
}
Where:
Example 1: In this example, We have two classes, Car and Bicycle, each with its own methods (start and pedal).The startVehicle function takes a parameter called vehicle, which can be either a Car or a Bicycle. Inside the function, we use instanceof to check the type of vehicle. If the vehicle is an instance of a Car, it narrows the type to Car, allowing us to call the start method. If the vehicle is an instance of a Bicycle, it narrows the type to Bicycle, allowing us to call the pedal method.
Output:
Example 2: In this example,We have a hierarchy of classes: Animal, Dog, and Cat. The animalSound function takes an Animal as its argument. Inside the function, we use instanceof to check whether the animal is an instance of Dog or Cat.If it's a Dog, the type of animal is narrowed to Dog, and we can call speak on it to bark.If it's a Cat, the type of animal is narrowed to Cat, and we can call speak on it to meow.Otherwise, if it's not a Dog or Cat, it remains of type Animal, and we call the generic speak method.
Output: 👁 z38
Conclusion: in this article we have seen 'instanceof' narrowing Type and it's syntax. It always returns a boolean value. It helps in cheking whether the object is an instaceof a class or not.
Reference:https://www.typescriptlang.org/docs/handbook/2/narrowing.html#instanceof-narrowing