JS.TS.NO.USELESS.CONSTRUCTOR

Disallow unnecessary constructors

Rule Details

This rule extends the base eslint/no-useless-constructor (https://eslint.org/docs/rules/no-useless-constructor) rule. It adds support for:

  • constructors marked as protected / private (i.e. marking a constructor as non-public),
  • public constructors when there is no superclass,
  • constructors with only parameter properties.

How to Use

Copy
{
  // note you must disable the base rule as it can report incorrect errors
  "no-useless-constructor": "off",
  "@typescript-eslint/no-useless-constructor": ["error"]
}

Options

See eslint/no-useless-constructor options (https://eslint.org/docs/rules/no-useless-constructor#options).

Caveat

This lint rule will report on constructors whose sole purpose is to change visibility of a parent constructor. See discussion on this rule's lack of type information (https://github.com/typescript-eslint/typescript-eslint/issues/3820#issuecomment-917821240) for context.

The content on this page is adapted from the ESLint User Guide. Copyright © OpenJS Foundation and other contributors, www.openjsf.org. All rights reserved. https://eslint.org/docs/rules/