禁止空函数
禁止空函数。
🎨
在 "plugin:@typescript-eslint/stylistic"
中扩展 ESLint 配置 将启用此规则。
此规则扩展了基本 eslint/no-empty-function
规则。它添加了对处理 TypeScript 特定代码的支持,否则这些代码将触发该规则。
一个有效的 TypeScript 特定代码示例,否则将触发 no-empty-function
规则,是在构造函数中使用 参数属性。
如何使用
.eslintrc.cjs
module.exports = {
"rules": {
// Note: you must disable the base rule as it can report incorrect errors
"no-empty-function": "off",
"@typescript-eslint/no-empty-function": "error"
}
};
在游乐场中尝试此规则 ↗
选项
参见 eslint/no-empty-function
选项。
此规则添加了以下选项
type AdditionalAllowOptionEntries =
| 'private-constructors'
| 'protected-constructors'
| 'decoratedFunctions'
| 'overrideMethods';
type AllowOptionEntries =
| BaseNoEmptyFunctionAllowOptionEntries
| AdditionalAllowOptionEntries;
interface Options extends BaseNoEmptyFunctionOptions {
allow?: Array<AllowOptionEntries>;
}
const defaultOptions: Options = {
...baseNoEmptyFunctionDefaultOptions,
allow: [],
};
allow: private-constructors
{ "allow": ["private-constructors"] }
选项的正确代码示例
class Foo {
private constructor() {}
}
在游乐场中打开allow: protected-constructors
{ "allow": ["protected-constructors"] }
选项的正确代码示例
class Foo {
protected constructor() {}
}
在游乐场中打开allow: decoratedFunctions
{ "allow": ["decoratedFunctions"] }
选项的正确代码示例
class Foo {
@decorator()
foo() {}
}
在游乐场中打开allow: overrideMethods
{ "allow": ["overrideMethods"] }
选项的正确代码示例
abstract class Base {
protected greet(): void {
console.log('Hello!');
}
}
class Foo extends Base {
protected override greet(): void {}
}
在游乐场中打开何时不使用它
如果您正在使用需要函数的外部 API,即使这些函数什么也不做,您可能希望避免使用此规则。您可以考虑使用 ESLint 禁用注释 来处理这些特定情况,而不是完全禁用此规则。
测试代码也经常违反此规则。如果您的测试设置不支持“模拟”或“间谍”函数,例如 jest.fn()
、sinon.spy()
或 vi.fn()
,您可能希望在测试文件中禁用此规则。同样,如果这些情况并不十分常见,您可能希望考虑使用 ESLint 禁用注释 来处理这些特定情况,而不是完全在测试文件中禁用此规则。