MCPcopy Index your code
hub / github.com/nodejs/node / checkElementAccessExpression

Function checkElementAccessExpression

test/fixtures/snapshot/typescript.js:75230–75247  ·  view source on GitHub ↗
(node, exprType, checkMode)

Source from the content-addressed store, hash-verified

75228 return propagateOptionalTypeMarker(checkElementAccessExpression(node, checkNonNullType(nonOptionalType, node.expression), checkMode), node, nonOptionalType !== exprType);
75229 }
75230 function checkElementAccessExpression(node, exprType, checkMode) {
75231 var objectType = ts.getAssignmentTargetKind(node) !== 0 /* AssignmentKind.None */ || isMethodAccessForCall(node) ? getWidenedType(exprType) : exprType;
75232 var indexExpression = node.argumentExpression;
75233 var indexType = checkExpression(indexExpression);
75234 if (isErrorType(objectType) || objectType === silentNeverType) {
75235 return objectType;
75236 }
75237 if (isConstEnumObjectType(objectType) && !ts.isStringLiteralLike(indexExpression)) {
75238 error(indexExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal);
75239 return errorType;
75240 }
75241 var effectiveIndexType = isForInVariableForNumericPropertyNames(indexExpression) ? numberType : indexType;
75242 var accessFlags = ts.isAssignmentTarget(node) ?
75243 4 /* AccessFlags.Writing */ | (isGenericObjectType(objectType) && !ts.isThisTypeParameter(objectType) ? 2 /* AccessFlags.NoIndexSignatures */ : 0) :
75244 32 /* AccessFlags.ExpressionPosition */;
75245 var indexedAccessType = getIndexedAccessTypeOrUndefined(objectType, effectiveIndexType, accessFlags, node) || errorType;
75246 return checkIndexedAccessIndexType(getFlowTypeOfAccessExpression(node, getNodeLinks(node).resolvedSymbol, indexedAccessType, indexExpression, checkMode), node);
75247 }
75248 function callLikeExpressionMayHaveTypeArguments(node) {
75249 return ts.isCallOrNewExpression(node) || ts.isTaggedTemplateExpression(node) || ts.isJsxOpeningLikeElement(node);
75250 }

Callers 2

checkIndexedAccessFunction · 0.85
checkElementAccessChainFunction · 0.85

Calls 12

isMethodAccessForCallFunction · 0.85
getWidenedTypeFunction · 0.85
isErrorTypeFunction · 0.85
isConstEnumObjectTypeFunction · 0.85
isGenericObjectTypeFunction · 0.85
getNodeLinksFunction · 0.85
checkExpressionFunction · 0.70
errorFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…