Skip to content

⬅️ Back to Table of Contents

📄 no-useless-constructor

📊 Analysis Summary

Metric Count
🔧 Functions 3
📦 Imports 6
📑 Type Aliases 2

📚 Table of Contents

🛠️ File Location:

📂 packages/eslint-plugin/src/rules/no-useless-constructor.ts

📤 Default Export

export default createRule<Options, MessageIds>({ ... })
Property Value
name 'no-useless-constructor'
meta.type 'problem'
meta.docs.description 'Disallow unnecessary constructors'
meta.docs.extendsBaseRule true
meta.docs.recommended 'strict'
meta.hasSuggestions baseRule.meta.hasSuggestions
meta.messages baseRule.meta.messages
meta.schema baseRule.meta.schema
defaultOptions []

Entry point: create — documented under Functions.


📦 Imports

Name Source
TSESTree @typescript-eslint/utils
AST_NODE_TYPES @typescript-eslint/utils
InferMessageIdsTypeFromRule ../util
InferOptionsTypeFromRule ../util
createRule ../util
getESLintCoreRule ../util/getESLintCoreRule

Functions

create(context: any): { MethodDefinition(node: any): void; }

Parameters:

  • context any

Returns: { MethodDefinition(node: any): void; }

Calls:

  • baseRule.create
  • checkAccessibility
  • checkParams
  • rules.MethodDefinition
Code
create(context) {
    const rules = baseRule.create(context);
    return {
      MethodDefinition(node): void {
        if (
          node.value.type === AST_NODE_TYPES.FunctionExpression &&
          checkAccessibility(node) &&
          checkParams(node)
        ) {
          rules.MethodDefinition(node);
        }
      },
    };
  }

checkAccessibility(node: TSESTree.MethodDefinition): boolean

Check if method with accessibility is not useless

Raw JSDoc
/**
 * Check if method with accessibility is not useless
 */
Code
function checkAccessibility(node: TSESTree.MethodDefinition): boolean {
  switch (node.accessibility) {
    case 'protected':
    case 'private':
      return false;
    case 'public':
      if (node.parent.parent.superClass) {
        return false;
      }
      break;
  }
  return true;
}

checkParams(node: TSESTree.MethodDefinition): boolean

Check if method is not useless due to typescript parameter properties and decorators

Raw JSDoc
/**
 * Check if method is not useless due to typescript parameter properties and decorators
 */

Calls:

  • node.value.params.some
Code
function checkParams(node: TSESTree.MethodDefinition): boolean {
  return !node.value.params.some(
    param =>
      param.type === AST_NODE_TYPES.TSParameterProperty ||
      param.decorators.length,
  );
}

Type Aliases

Options

type Options = InferOptionsTypeFromRule<typeof baseRule>;

MessageIds

type MessageIds = InferMessageIdsTypeFromRule<typeof baseRule>;

Generated by Syntax Scribe