code: function getJsxElementInstanceType(node, valueType) {
              ts.Debug.assert(!(valueType.flags & 524288 /* Union */));
              if (isTypeAny(valueType)) {
                  // Short-circuit if the class tag is using an element type 'any'
                  return anyType;
              }
              // Resolve the signatures, preferring constructor
              var signatures = getSignaturesOfType(valueType, 1 /* Construct */);
              if (signatures.length === 0) {
                  // No construct signatures, try call signatures
                  signatures = getSignaturesOfType(valueType, 0 /* Call */);
                  if (signatures.length === 0) {
                      // We found no signatures at all, which is an error
                      error(node.tagName, ts.Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures, ts.getTextOfNode(node.tagName));
                      return unknownType;
                  }
              }
              return getUnionType(signatures.map(getReturnTypeOfSignature), /*subtypeReduction*/ true);
          }
docs: Given a JSX element that is a class element, finds the Element Instance Type. If the
  element is not a class element, or the class element type cannot be determined, returns 'undefined'.
  For example, in the element <MyClass>, the element instance type is `MyClass` (not `typeof MyClass`).