code: function isTypeOfKind(type, kind) {
              if (type.flags & kind) {
                  return true;
              }
              if (type.flags & 524288 /* Union */) {
                  var types = type.types;
                  for (var _i = 0, types_14 = types; _i < types_14.length; _i++) {
                      var t = types_14[_i];
                      if (!isTypeOfKind(t, kind)) {
                          return false;
                      }
                  }
                  return true;
              }
              if (type.flags & 1048576 /* Intersection */) {
                  var types = type.types;
                  for (var _a = 0, types_15 = types; _a < types_15.length; _a++) {
                      var t = types_15[_a];
                      if (isTypeOfKind(t, kind)) {
                          return true;
                      }
                  }
              }
              return false;
          }
docs: Return true if type is of the given kind. A union type is of a given kind if all constituent types are of the given kind. An intersection type is of a given kind if at least one constituent type is of the given kind.