MCPcopy Create free account
hub / github.com/microsoft/typescript-go / inferFromGenericMappedTypes

Method inferFromGenericMappedTypes

internal/checker/inference.go:653–663  ·  view source on GitHub ↗
(n *InferenceState, source *Type, target *Type)

Source from the content-addressed store, hash-verified

651}
652
653func (c *Checker) inferFromGenericMappedTypes(n *InferenceState, source *Type, target *Type) {
654 // The source and target types are generic types { [P in S]: X } and { [P in T]: Y }, so we infer
655 // from S to T and from X to Y.
656 c.inferFromTypes(n, c.getConstraintTypeFromMappedType(source), c.getConstraintTypeFromMappedType(target))
657 c.inferFromTypes(n, c.getTemplateTypeFromMappedType(source), c.getTemplateTypeFromMappedType(target))
658 sourceNameType := c.getNameTypeFromMappedType(source)
659 targetNameType := c.getNameTypeFromMappedType(target)
660 if sourceNameType != nil && targetNameType != nil {
661 c.inferFromTypes(n, sourceNameType, targetNameType)
662 }
663}
664
665func (c *Checker) inferFromObjectTypes(n *InferenceState, source *Type, target *Type) {
666 if source.objectFlags&ObjectFlagsReference != 0 && target.objectFlags&ObjectFlagsReference != 0 && (source.Target() == target.Target() || c.isArrayType(source) && c.isArrayType(target)) {

Callers 1

inferFromObjectTypesMethod · 0.95

Tested by

no test coverage detected