Skip to content

ā¬…ļø Back to Table of Contents

šŸ“„ no-unsafe-function-type

šŸ“Š Analysis Summary

Metric Count
šŸ”§ Functions 2
šŸ“¦ Imports 4

šŸ“š Table of Contents

šŸ› ļø File Location:

šŸ“‚ packages/eslint-plugin/src/rules/no-unsafe-function-type.ts

šŸ“¤ Default Export

export default createRule({ ... })
Property Value
name 'no-unsafe-function-type'
meta.type 'problem'
meta.docs.description 'Disallow using the unsafe built-in Function type'
meta.docs.recommended 'recommended'
meta.messages.bannedFunctionType [ 'The Function type accepts any function-like value.', 'Prefer explicitly defining any function parameters and ret...
meta.schema []
defaultOptions []

Entry point: create — documented under Functions.


šŸ“¦ Imports

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

Functions

create(context: any): { TSClassImplements(node: any): void; TSInterfaceHeritage(n…

Parameters:

  • context any

Returns: { TSClassImplements(node: any): void; TSInterfaceHeritage(node: any): void; TSTypeReference(node: any): void; }

Calls:

  • isReferenceToGlobalFunction (from ../util)
  • context.report
  • checkBannedTypes
Code
create(context) {
    function checkBannedTypes(node: TSESTree.Node): void {
      if (
        node.type === AST_NODE_TYPES.Identifier &&
        node.name === 'Function' &&
        isReferenceToGlobalFunction('Function', node, context.sourceCode)
      ) {
        context.report({
          node,
          messageId: 'bannedFunctionType',
        });
      }
    }

    return {
      TSClassImplements(node): void {
        checkBannedTypes(node.expression);
      },
      TSInterfaceHeritage(node): void {
        checkBannedTypes(node.expression);
      },
      TSTypeReference(node): void {
        checkBannedTypes(node.typeName);
      },
    };
  }

Internal helpers

Declared inside another function in this file.

checkBannedTypes(node: TSESTree.Node): void

Parameters:

  • node TSESTree.Node

Returns: void

Calls:

  • isReferenceToGlobalFunction (from ../util)
  • context.report
Code
function checkBannedTypes(node: TSESTree.Node): void {
      if (
        node.type === AST_NODE_TYPES.Identifier &&
        node.name === 'Function' &&
        isReferenceToGlobalFunction('Function', node, context.sourceCode)
      ) {
        context.report({
          node,
          messageId: 'bannedFunctionType',
        });
      }
    }

Generated by Syntax Scribe