Запуск WebStorm 2019.1 с языковым уровнем ECMAScript 6.
Если я сделаю следующее:
new Error('Foobar');
, он не выдаст никаких предупреждений.Но если я сделаю следующее:
class SomeError extends Error {
constructor(message) {
super(message);
}
}
Тогда WebStorm пожалуется на вызов супер-конструктора, говоря: Неверное количество аргументов, ожидается 0 .
Я такжепопытался использовать распространенные аргументы, такие как
constructor(...args) {
super(...args);
}
Это дает те же результаты - 0 ожидаемых аргументов .
Проверка файла lib.es5.d.ts
, интерфейсы для поиска ошибоккак это:
interface Error {
name: string;
message: string;
stack?: string;
}
interface ErrorConstructor {
new(message?: string): Error;
(message?: string): Error;
readonly prototype: Error;
}
declare var Error: ErrorConstructor;
Это выглядит правильно для меня.Так почему же IDE настаивает на том, что при расширении Error
конструктор суперкласса не должен иметь никаких аргументов?Конечно, я могу сделать this.message = message;
вместо этого, но мне любопытно, что происходит.Это проблема с IDE, с некоторыми из моих настроек совместимости на уровне языка, или я тупой?