Например:
Код: Выделить всё
@overload
def func[T1](types: tuple[type[T1]]) -> T1: ...
@overload
def func[T1, T2](types: tuple[type[T1], type[T2]]) -> T1 | T2: ...
@overload
def func[T1, T2, T3](types: tuple[type[T1], type[T2], type[T3]]) -> T1 | T2 | T3: ...
Код: Выделить всё
# invalid
def func[*Ts](types: tuple[type[*Ts]]) -> Union[*Ts]: ...
Подробнее здесь: https://stackoverflow.com/questions/797 ... -parameter
Мобильная версия