Быстрое / грязное решение: Возвратите интерфейс {}, но в конечном итоге вы обманываете компилятор, и вам не терпится проверка типов.
Лучше /Более безопасное решение: Подумайте об общих операциях, которые необходимо выполнить с типами, которые вы возвращаете, определите эти общие методы для каждого типа и сохраните эти общие методы в интерфейсе.Если вы пытаетесь вернуть несколько типов из функции, скорее всего, между ними уже должны быть какие-то общие отношения, или их можно найти с небольшой реструктуризацией.Верните этот интерфейс из функции.Таким образом, компилятор всегда сможет проверить, что вы не возвращаете что-то неожиданное (то, что не реализует эти методы).Вы можете посмотреть, как шаблон factory method
реализован в Golang.(Подсказка: он возвращает интерфейсы, а не суперкласс, как это обычно делается в C ++ / Java)