Inherit from Error breaks `instanceof` check in TypeScript Inherit from Error breaks `instanceof` check in TypeScript typescript typescript

Inherit from Error breaks `instanceof` check in TypeScript


Turns out an change has been introduced in TypeScript@2.1 that breaks this pattern. The whole breaking change is described here.

In general it seems it's too complicated/error to even go with this direction.

Probably better to have own error object and keeps some original Error as an property:

class CustomError {    originalError: Error;    constructor(originalError?: Error) {        if (originalError) {            this.originalError = originalError        }    }}class SpecificError extends CustomError {}const error = new SpecificError(new Error('test'));console.log(error instanceof CustomError); // trueconsole.log(error instanceof SpecificError); // true