diff --git a/docs/typed-libraries.md b/docs/typed-libraries.md index d05a515e1..50c26f5a9 100644 --- a/docs/typed-libraries.md +++ b/docs/typed-libraries.md @@ -70,6 +70,7 @@ Type annotations can be omitted in a few specific cases where the type is obviou * Constants that are assigned simple literal values (e.g. `RED = '#F00'` or `MAX_TIMEOUT = 50` or `room_temperature: Final = 20`). A constant is a symbol that is assigned only once and is either annotated with a `Final` annotation or is named in all-caps. A constant that is not assigned a simple literal value requires explicit annotations, preferably with a `Final` annotation (e.g. `WOODWINDS: Final[List[str]] = ['Oboe', 'Bassoon']`). * Enum values within an Enum class do not require annotations because they take on the type of the Enum class. +* Type aliases do not require annotations. A type alias is a symbol that is defined at a module level with a single assignment where the assigned value is an instantiable type, as opposed to a class instance (e.g. `Foo = Callable[[Literal["a", "b"]], Union[int, str]]` or `Bar = Optional[MyGenericClass[int]]`). * The “self” parameter in an instance method and the “cls” parameter in a class method do not require an explicit annotation. * The return type for an `__init__` method does not need to be specified, since it is always `None`. * The following module-level symbols do not require type annotations: `__all__`,`__author__`, `__copyright__`, `__email__`, `__license__`, `__title__`, `__uri__`, `__version__`.