Я хотел бы использовать преимущества подсказок типа Literal в Python, но кажется, что Literal не распознается правильно как ключи dict или в списках:
from typing import Literal, Dict, List
T = Literal['foo', 'bar']
L = List[T]
D = Dict[T, int]
q: T = 'foo' # ok
l: L = ['foo', 'bar'] # Expected type 'List[Literal['foo', 'bar']]', got 'List[str]' instead
d: D = {'foo': 1} # Expected type 'Dict[Literal['foo', 'bar'], int]', got 'Dict[str, int]' instead
Как правильно использовать тип Literal в списке или как клавиши dict?