Special construct to add type hints to a dictionary. At runtime it is a plain dict.
class typing.TypedDict(dict)
class Point2D(TypedDict):
x: int
y: int
label: str
a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} OK
b: Point2D = {'z': 3, 'label': 'bad'} Fails type check
assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first')
Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str})
Point2D = TypedDict('Point2D', x=int, y=int, label=str)
raises SyntaxError
class Point2D(TypedDict):
in: int 'in' is a keyword
x-y: int name with hyphens
OK, functional syntax
Point2D = TypedDict('Point2D', {'in': int, 'x-y': int})
class Point2D(TypedDict):
x: int
y: int
label: NotRequired[str]
Alternative syntax
Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': NotRequired[str]})