eslint-plugin-eslint-plugin icon indicating copy to clipboard operation
eslint-plugin-eslint-plugin copied to clipboard

Detect suggestions with spread variable in `require-meta-has-suggestions`

Open bmish opened this issue 3 years ago • 0 comments

Related of #272 but distinct and might be a bit easier to fix since we just need to evaluate the spread.

const fixOrSuggest: {
  fix: TSESLint.ReportFixFunction | null;
  suggest: TSESLint.ReportSuggestionArray<MessageIds> | null;
} = {
  fix: null,
  suggest: [
    {
      messageId: 'suggestUnknown',
      fix(fixer): TSESLint.RuleFix {
        return fixer.replaceText(node, 'unknown');
      },
    },
    {
      messageId: 'suggestNever',
      fix(fixer): TSESLint.RuleFix {
        return fixer.replaceText(node, 'never');
      },
    },
  ],
};

if (fixToUnknown) {
  fixOrSuggest.fix = (fixer): TSESLint.RuleFix =>
    fixer.replaceText(node, 'unknown');
}

context.report({
  node,
  messageId: 'unexpectedAny',
  ...fixOrSuggest,
});

https://github.com/typescript-eslint/typescript-eslint/blob/ad412cdd74dc5619fbe4bf27c0a5eb5c5a4b65ca/packages/eslint-plugin/src/rules/no-explicit-any.ts#L205

This is not specific to TypeScript.

bmish avatar Aug 04 '22 14:08 bmish