- Implementing instanceof checks for custom typescript Error instances?](https://stackoverflow.com/questions/55065742/implementing-instanceof-checks-for-custom-typescript-error-instances)
Now, a complete implementation of @Mathyn and @TmTron answers:
/**
* Base Error.
*/
class BaseError extends Error {
constructor(message?: string) {
const trueProto = new.target.prototype;
super(message);
Object.setPrototypeOf(this, trueProto);
}
}
class Err1 extends BaseError {}
const e1 = new Err1();
console.log(e1 instanceof Err1); // true
console.log(e1 instanceof Error); // true
class Err2 extends Err1 {}
const e2 = new Err2();
console.log(e2 instanceof Err1); // true
console.log(e2 instanceof Err2); // true
console.log(e2 instanceof Error); // true
class NoBaseErr extends Error {}
const x = new NoBaseErr();
console.log(x instanceof Error); // true
console.log(x instanceof NoBaseErr); // false !!!
import BaseError from 'ts-base-error';