📄 checkNullishAndReport¶
📊 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(…): void¶
Parameters:
context`RuleContext< PreferOptionalChainMessageIds, [PreferOptionalChainOptions]`
parserServicesParserServicesWithTypeInformation{ requireNullish }PreferOptionalChainOptionsmaybeNullishNodesTSESTree.Expression[]descriptorReportDescriptor<PreferOptionalChainMessageIds>
Returns: void
Calls:
maybeNullishNodes.someunionConstituents(parserServices.getTypeAtLocation(node)).someisTypeFlagSet (from @typescript-eslint/type-utils)context.report
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);
}
}
Generated by Syntax Scribe