no-useless-constructor
Disallow unnecessary constructors.
🔒
Extending"plugin:@typescript-eslint/strict" in anESLint configuration enables this rule.
💡
Some problems reported by this rule are manually fixable by editorsuggestions.
🧱
This is an "extension" rule that replaces a core ESLint rule to work with TypeScript. SeeRules > Extension Rules.
This rule extends the baseno-useless-constructor rule from ESLint core. It adds support for:
- constructors marked as
protected/private(i.e. marking a constructor as non-public), publicconstructors when there is no superclass,- constructors with only parameter properties.
Caveat
This lint rule will report on constructors whose sole purpose is to change visibility of a parent constructor.Seediscussion on this rule's lack of type information for context.
Options
Seeeslint/no-useless-constructor's options.
How to Use
- Flat Config
- Legacy Config
eslint.config.mjs
exportdefault tseslint.config({
rules:{
// Note: you must disable the base rule as it can report incorrect errors
"no-useless-constructor":"off",
"@typescript-eslint/no-useless-constructor":"error"
}
});
.eslintrc.cjs
module.exports={
"rules":{
// Note: you must disable the base rule as it can report incorrect errors
"no-useless-constructor":"off",
"@typescript-eslint/no-useless-constructor":"error"
}
};
Try this rule in the playground ↗