Skip to content

⬅️ Back to Table of Contents

📄 restrict-template-expressions.ts

📊 Analysis Summary

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

📚 Table of Contents

🛠️ File Location:

📂 packages/eslint-plugin/src/rules/restrict-template-expressions.ts

📦 Imports

Name Source
TSESTree @typescript-eslint/utils
Type typescript
TypeChecker typescript
typeMatchesSomeSpecifier @typescript-eslint/type-utils
typeOrValueSpecifiersSchema @typescript-eslint/type-utils
AST_NODE_TYPES @typescript-eslint/utils
TypeFlags typescript
TypeOrValueSpecifier ../util
createRule ../util
getConstrainedTypeAtLocation ../util
getParserServices ../util
getTypeName ../util
isTypeAnyType ../util
isTypeFlagSet ../util
isTypeNeverType ../util

Functions

testTypeFlag(flagsToCheck: TypeFlags): OptionTester

Code
(flagsToCheck: TypeFlags): OptionTester =>
  type =>
    isTypeFlagSet(type, flagsToCheck)
  • Parameters:
  • flagsToCheck: TypeFlags
  • Return Type: OptionTester

recursivelyCheckType(innerType: Type): boolean

Code
function recursivelyCheckType(innerType: Type): boolean {
      if (innerType.isUnion()) {
        return innerType.types.every(recursivelyCheckType);
      }

      if (innerType.isIntersection()) {
        return innerType.types.some(recursivelyCheckType);
      }

      return (
        isTypeFlagSet(innerType, TypeFlags.StringLike) ||
        typeMatchesSomeSpecifier(innerType, allow, program) ||
        enabledOptionTesters.some(({ tester }) =>
          tester(innerType, checker, recursivelyCheckType),
        )
      );
    }
  • Parameters:
  • innerType: Type
  • Return Type: boolean
  • Calls:
  • innerType.isUnion
  • innerType.types.every
  • innerType.isIntersection
  • innerType.types.some
  • isTypeFlagSet (from ../util)
  • typeMatchesSomeSpecifier (from @typescript-eslint/type-utils)
  • enabledOptionTesters.some
  • tester

Type Aliases

OptionTester

type OptionTester = (
  type: Type,
  checker: TypeChecker,
  recursivelyCheckType: (type: Type) => boolean,
) => boolean;

Options

type Options = [
  {
    allow?: TypeOrValueSpecifier[];
  } & Partial<Record<(typeof optionTesters)[number]['option'], boolean>>,
];

MessageId

type MessageId = 'invalidType';