У меня есть 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
или более раннюю.
Я потратил довольно много времени на поиск ответов. Некоторые даже наводят меня на некоторые идеи, но не могут их решить. Я хотел бы знать, как (если возможно) я могу обновить целевую версию.