34 lines
801 B
Python
34 lines
801 B
Python
from typing import TypedDict, NotRequired, Literal
|
|
import typing
|
|
|
|
# dict literal
|
|
MyType1 = TypedDict("MyType1", {"a": int, "b": str})
|
|
|
|
# dict call
|
|
MyType2 = TypedDict("MyType2", dict(a=int, b=str))
|
|
|
|
# kwargs
|
|
MyType3 = TypedDict("MyType3", a=int, b=str)
|
|
|
|
# Empty TypedDict
|
|
MyType4 = TypedDict("MyType4")
|
|
|
|
# Literal values
|
|
MyType5 = TypedDict("MyType5", {"a": "hello"})
|
|
MyType6 = TypedDict("MyType6", a="hello")
|
|
|
|
# NotRequired
|
|
MyType7 = TypedDict("MyType7", {"a": NotRequired[dict]})
|
|
|
|
# total
|
|
MyType8 = TypedDict("MyType8", {"x": int, "y": int}, total=False)
|
|
|
|
# invalid identifiers
|
|
MyType9 = TypedDict("MyType9", {"in": int, "x-y": int})
|
|
|
|
# using Literal type
|
|
MyType10 = TypedDict("MyType10", {"key": Literal["value"]})
|
|
|
|
# using namespace TypedDict
|
|
MyType11 = typing.TypedDict("MyType11", {"key": int})
|