MCPcopy Create free account
hub / github.com/nodejs/node / getTypeOfMappedSymbol

Function getTypeOfMappedSymbol

test/fixtures/snapshot/typescript.js:58607–58630  ·  view source on GitHub ↗
(symbol)

Source from the content-addressed store, hash-verified

58605 }
58606 }
58607 function getTypeOfMappedSymbol(symbol) {
58608 if (!symbol.type) {
58609 var mappedType = symbol.mappedType;
58610 if (!pushTypeResolution(symbol, 0 /* TypeSystemPropertyName.Type */)) {
58611 mappedType.containsError = true;
58612 return errorType;
58613 }
58614 var templateType = getTemplateTypeFromMappedType(mappedType.target || mappedType);
58615 var mapper = appendTypeMapping(mappedType.mapper, getTypeParameterFromMappedType(mappedType), symbol.keyType);
58616 var propType = instantiateType(templateType, mapper);
58617 // When creating an optional property in strictNullChecks mode, if 'undefined' isn't assignable to the
58618 // type, we include 'undefined' in the type. Similarly, when creating a non-optional property in strictNullChecks
58619 // mode, if the underlying property is optional we remove 'undefined' from the type.
58620 var type = strictNullChecks && symbol.flags & 16777216 /* SymbolFlags.Optional */ && !maybeTypeOfKind(propType, 32768 /* TypeFlags.Undefined */ | 16384 /* TypeFlags.Void */) ? getOptionalType(propType, /*isProperty*/ true) :
58621 symbol.checkFlags & 524288 /* CheckFlags.StripOptional */ ? removeMissingOrUndefinedType(propType) :
58622 propType;
58623 if (!popTypeResolution()) {
58624 error(currentNode, ts.Diagnostics.Type_of_property_0_circularly_references_itself_in_mapped_type_1, symbolToString(symbol), typeToString(mappedType));
58625 type = errorType;
58626 }
58627 symbol.type = type;
58628 }
58629 return symbol.type;
58630 }
58631 function getTypeParameterFromMappedType(type) {
58632 return type.typeParameter ||
58633 (type.typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfNode(type.declaration.typeParameter)));

Callers 1

getTypeOfSymbolFunction · 0.85

Calls 12

pushTypeResolutionFunction · 0.85
appendTypeMappingFunction · 0.85
instantiateTypeFunction · 0.85
maybeTypeOfKindFunction · 0.85
getOptionalTypeFunction · 0.85
popTypeResolutionFunction · 0.85
symbolToStringFunction · 0.85
typeToStringFunction · 0.85
errorFunction · 0.70

Tested by

no test coverage detected