Код: Выделить всё
from typing import TypeVar, Type, overload
T = TypeVar('T')
@overload
def foo(bar: Type[T]) -> T:
...
@overload
def foo(bar: Type[T] | None) -> T | None:
...
def foo(bar: Type[T] | None) -> T | None:
# implementation goes here
...
class Bar:
...
bar = foo(Bar)
bar2 = foo(Bar | None) # No overload variant of "foo" matches argument type "UnionType"
Я пробовал другие: р>
Код: Выделить всё
Type[T | None]
удаление второй перегрузки (что приводит только к Type[T] разрешен), mypy говорит, что вариант перегрузки "foo" не соответствует типу аргумента "UnionType" (это означает, что вторая перегрузка в любом случае неверна)
Подробнее здесь: https://stackoverflow.com/questions/785 ... int-itself