instanceof возвращает ошибку для моего класса исключений - PullRequest
1 голос
/ 05 марта 2020

У меня есть следующий код для создания и перехвата пользовательского исключения:

class CreateValidationError extends Error {
    constructor(message?: string) {
        super(message);
        Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain
        this.name = CreateValidationError.name; // stack traces display correctly now 
    }
}

function doSomething() {
    throw new CreateValidationError('abc')
}

function funcOne() {
    try {
        doSomething()
    }
    catch(e) {
        if (e instanceof Error) { console.log('its an error') }// this prints correctly 

        if (e instanceof CreateValidationError) { console.log('its a CreateValidation error') } // this does not print 
    }
}

Проблема в том, что instanceof обнаруживает только базовый класс, а не производный класс.

Am Я делаю что-то не так в определении пользовательского исключения?

Или есть какие-то известные ошибки, связанные с TypeScript или Webpack, которые могут привести к потере иерархии классов во время сборки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...