Skip to content

⬅️ Back to Table of Contents

📄 checkNullishAndReport.ts

📊 Analysis Summary

Metric Count
🔧 Functions 1
📦 Imports 8

📚 Table of Contents

🛠️ File Location:

📂 packages/eslint-plugin/src/rules/prefer-optional-chain-utils/checkNullishAndReport.ts

📦 Imports

Name Source
ParserServicesWithTypeInformation @typescript-eslint/utils
TSESTree @typescript-eslint/utils
ReportDescriptor @typescript-eslint/utils/ts-eslint
RuleContext @typescript-eslint/utils/ts-eslint
isTypeFlagSet @typescript-eslint/type-utils
unionConstituents ts-api-utils
PreferOptionalChainMessageIds ./PreferOptionalChainOptions
PreferOptionalChainOptions ./PreferOptionalChainOptions

Functions

`checkNullishAndReport(context: RuleContext<

PreferOptionalChainMessageIds,
[PreferOptionalChainOptions]

, parserServices: ParserServicesWithTypeInformation, { requireNullish }: PreferOptionalChainOptions, maybeNullishNodes: TSESTree.Expression[], descriptor: ReportDescriptor): void`

Code
export function checkNullishAndReport(
  context: RuleContext<
    PreferOptionalChainMessageIds,
    [PreferOptionalChainOptions]
  >,
  parserServices: ParserServicesWithTypeInformation,
  { requireNullish }: PreferOptionalChainOptions,
  maybeNullishNodes: TSESTree.Expression[],
  descriptor: ReportDescriptor<PreferOptionalChainMessageIds>,
): void {
  if (
    !requireNullish ||
    maybeNullishNodes.some(node =>
      unionConstituents(parserServices.getTypeAtLocation(node)).some(t =>
        isTypeFlagSet(t, ts.TypeFlags.Null | ts.TypeFlags.Undefined),
      ),
    )
  ) {
    context.report(descriptor);
  }
}
  • Parameters:
  • `context: RuleContext< PreferOptionalChainMessageIds, [PreferOptionalChainOptions]

    `

  • parserServices: ParserServicesWithTypeInformation
  • { requireNullish }: PreferOptionalChainOptions
  • maybeNullishNodes: TSESTree.Expression[]
  • descriptor: ReportDescriptor<PreferOptionalChainMessageIds>
  • Return Type: void
  • Calls:
  • maybeNullishNodes.some
  • unionConstituents(parserServices.getTypeAtLocation(node)).some
  • isTypeFlagSet (from @typescript-eslint/type-utils)
  • context.report