Использование целевой версии TS C в качестве причины ES2017 + «Конструктор класса не может быть вызван без новой» - PullRequest
0 голосов
/ 08 февраля 2020

У меня есть node.js проект, где кодирование в Tpescript. В файле tsconfig я обновил целевую версию до ES2017 (с ES6). Приложение работает нормально, пока не сгенерировано исключение, и Bluebird .catch() пытается его обработать. В этом случае возникает ошибка:

TypeError: Class constructor [class-name] cannot be invoked without 'new'.

Код, вызывающий проблему:

@Get('/:countryCode')
    public async getCountrySettings(
        @Param("countryCode") countryCode: string
    ) {
        const command = new GetCountrySettings(countryCode);

        return this.getCountrySettingsHandler
            .fetch(command)           
            .catch(GetCountrySettingsHandlerException, (e: GetCountrySettingsHandlerException) => {
                throw new InternalServerErrorException(e.message);
            });
    }

GetCountrySettingsHandlerException:

export class GetCountrySettingsHandlerException extends Error {
}

Нет проблем, когда целевая версия в файле tsconfig установлена ​​на ES2016 или более раннюю.

Я потратил довольно много времени на поиск ответов. Некоторые даже наводят меня на некоторые идеи, но не могут их решить. Я хотел бы знать, как (если возможно) я могу обновить целевую версию.

...