function handleLastUnionElementInExpression({
  comment,
  precedingNode,
  enclosingNode,
  followingNode,
}) {
  if (
    isUnionType(precedingNode) &&
    (((enclosingNode.type === "TSArrayType" ||
      enclosingNode.type === "ArrayTypeAnnotation") &&
      !followingNode) ||
      isIntersectionType(enclosingNode))
  ) {
    // @ts-expect-error -- types exits in TSUnionType and UnionTypeAnnotation
    addTrailingComment(precedingNode.types.at(-1), comment);
    return true;
  }
  return false;
}
Handle `Comment2` and `Comment4`.

  type Foo = (
    | "thing1" // Comment1
    | "thing2" // Comment2
  )[];

  type Foo = (
    | "thing1" // Comment3
    | "thing2" // Comment4
  ) & Bar;

@param {CommentContext} context
@returns {boolean}