code: public static TypeDeclarationNode unionType(Iterable<TypeDeclarationNode> options) {
      checkArgument(!Iterables.isEmpty(options), "union must have at least one option");
      TypeDeclarationNode node = new TypeDeclarationNode(Token.UNION_TYPE);
      for (Node option : options) {
        node.addChildToBack(option);
      }
      return node;
    }
docs: Represents a union type, which can be one of the given types.
  Closure accepts syntax like {@code {(number|boolean)}}
  
  <p>Example:
  <pre>
  UNION_TYPE
  NUMBER_TYPE
  BOOLEAN_TYPE
  </pre>
  @param options the types which are accepted
  @return a new node representing the union type