Skip to content

⬅️ Back to Table of Contents

📄 no-extra-non-null-assertion

📊 Analysis Summary

Metric Count
🔧 Functions 2
📦 Imports 2

📚 Table of Contents

🛠️ File Location:

📂 packages/eslint-plugin/src/rules/no-extra-non-null-assertion.ts

📤 Default Export

export default createRule({ ... })
Property Value
name 'no-extra-non-null-assertion'
meta.type 'problem'
meta.docs.description 'Disallow extra non-null assertions'
meta.docs.recommended 'recommended'
meta.fixable 'code'
meta.messages.noExtraNonNullAssertion 'Forbidden extra non-null assertion.'
meta.schema []
defaultOptions []

Entry point: create — documented under Functions.


📦 Imports

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

Functions

create(context: any): { 'CallExpression[optional = true] > TSNonNullExpression.ca…

Parameters:

  • context any

Returns: { 'CallExpression[optional = true] > TSNonNullExpression.callee': (node: TSESTree.TSNonNullExpression) => void; 'MemberExpression[optional = true] > TSNonNullExpression.object': (node: TSESTree.TSNonNullExpression) => void; 'TSNonNullExpression > TSNonNullExpression': (node: TSESTree.TSNonNullExpression) => void; }

Calls:

  • context.report
  • fixer.removeRange
Code
create(context) {
    function checkExtraNonNullAssertion(
      node: TSESTree.TSNonNullExpression,
    ): void {
      context.report({
        node,
        messageId: 'noExtraNonNullAssertion',
        fix(fixer) {
          return fixer.removeRange([node.range[1] - 1, node.range[1]]);
        },
      });
    }

    return {
      'CallExpression[optional = true] > TSNonNullExpression.callee':
        checkExtraNonNullAssertion,
      'MemberExpression[optional = true] > TSNonNullExpression.object':
        checkExtraNonNullAssertion,
      'TSNonNullExpression > TSNonNullExpression': checkExtraNonNullAssertion,
    };
  }

Internal helpers

Declared inside another function in this file.

checkExtraNonNullAssertion(node: TSESTree.TSNonNullExpression): void

Parameters:

  • node TSESTree.TSNonNullExpression

Returns: void

Calls:

  • context.report
  • fixer.removeRange
Code
function checkExtraNonNullAssertion(
      node: TSESTree.TSNonNullExpression,
    ): void {
      context.report({
        node,
        messageId: 'noExtraNonNullAssertion',
        fix(fixer) {
          return fixer.removeRange([node.range[1] - 1, node.range[1]]);
        },
      });
    }

Generated by Syntax Scribe