Nik*_*ili 0 javascript typescript eslint
代码:
constructor(cdr: ChangeDetectorRef, inj: Injector) {
super(cdr, inj);
}
Run Code Online (Sandbox Code Playgroud)
埃斯林特:
{
...
overrides: {
...
rules: {
...
"@typescript-eslint/no-useless-constructor": "error",
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
这条规则告诉我删除无用的 constructor ,但我必须在里面调用 super() 。
如何绕过此规则而不禁用或删除它?
只需删除构造函数即可。如果您不再需要进一步使用,则无需定义它。对于您的扩展类,它与空构造函数相同。它没有用,因为它是由 JavaScript/TypeScript 自动处理的。请参阅文档。
如果您不提供自己的构造函数,那么将为您提供默认构造函数。...如果您的类是派生类,则默认构造函数将调用父构造函数,并传递提供的任何参数。
所以派生类的构造函数必须包含 super 调用。但您不一定必须定义一个空的构造函数或仅super在内部(派生类)。除非您想添加更多或不同的签名。
如果您仍然想保留它,只需删除/禁用 linter 规则即可。
有一个警告需要知道:
Angular 可能需要这个带有 super 调用的“无用”构造函数,例如 Injectable 和 Constructor(派生类)。这可能会导致错误:This constructor is not compatible with Angular Dependency Injection because its dependency at index 0 of the parameter list is invalid.在这种情况下,必须禁用 eslint 规则。
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |