WebStorm认为错误构造函数的参数为​​零

时间:2019-06-05 07:50:05

标签: javascript typescript intellij-idea constructor webstorm

使用ECMAScript 6语言级别运行WebStorm 2019.1。

如果我执行以下操作:

new Error('Foobar');

它不会产生任何警告。但是,如果我执行以下操作:

class SomeError extends Error {
  constructor(message) {
    super(message);
  }      
}

然后WebStorm抱怨对超级构造函数的调用,说无效的参数数量,预期为0

我也尝试使用传播参数,例如

constructor(...args) {
  super(...args);
}

这给出了相同的结果-预期 0个参数

检查lib.es5.d.ts文件后,Error的界面如下所示:

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的问题吗?我有一些语言级别兼容性设置吗?还是我很愚蠢?

1 个答案:

答案 0 :(得分:2)

已知问题WEB-32758在即将发布的IDEA 2019.2中已解决