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