Skip to content

⬅️ Back to Table of Contents

📄 prefer-enum-initializers.ts

📊 Analysis Summary

Metric Count
🔧 Functions 25
📦 Imports 3
📑 Type Aliases 1

📚 Table of Contents

🛠️ File Location:

📂 packages/eslint-plugin/src/rules/prefer-enum-initializers.ts

📦 Imports

Name Source
TSESLint @typescript-eslint/utils
TSESTree @typescript-eslint/utils
createRule ../util

Functions

TSEnumDeclaration(node: TSESTree.TSEnumDeclaration): void

Code
function TSEnumDeclaration(node: TSESTree.TSEnumDeclaration): void {
      const { members } = node.body;

      members.forEach((member, index) => {
        if (member.initializer == null) {
          const name = context.sourceCode.getText(member);
          context.report({
            node: member,
            messageId: 'defineInitializer',
            data: {
              name,
            },
            suggest: [
              {
                messageId: 'defineInitializerSuggestion',
                data: { name, suggested: index },
                fix: (fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index}`);
                },
              },
              {
                messageId: 'defineInitializerSuggestion',
                data: { name, suggested: index + 1 },
                fix: (fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index + 1}`);
                },
              },
              {
                messageId: 'defineInitializerSuggestion',
                data: { name, suggested: `'${name}'` },
                fix: (fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = '${name}'`);
                },
              },
            ],
          });
        }
      });
    }
  • Parameters:
  • node: TSESTree.TSEnumDeclaration
  • Return Type: void
  • Calls:
  • members.forEach
  • context.sourceCode.getText
  • context.report
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index + 1}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index + 1}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = '${name}'`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = '${name}'`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index + 1}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index + 1}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = '${name}'`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = '${name}'`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index + 1}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index + 1}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = '${name}'`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = '${name}'`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index + 1}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = ${index + 1}`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = '${name}'`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

fix(fixer: any): TSESLint.RuleFix

Code
(fixer): TSESLint.RuleFix => {
                  return fixer.replaceText(member, `${name} = '${name}'`);
                }
  • Parameters:
  • fixer: any
  • Return Type: TSESLint.RuleFix
  • Calls:
  • fixer.replaceText

Type Aliases

MessageIds

type MessageIds = 'defineInitializer' | 'defineInitializerSuggestion';