Development Status
- 5 - Production/Stable
Environment
- Console
Intended Audience
- Developers
Operating System
- OS Independent
Programming Language
- Python :: 3
- Python :: 3 :: Only
- Python :: 3.9
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
Topic
- Software Development
Typing Extensions
Overview
The typing_extensions
module serves two related purposes:
- Enable use of new type system features on older Python versions. For example,
typing.TypeGuard
is new in Python 3.10, buttyping_extensions
allows users on previous Python versions to use it too. - Enable experimentation with new type system PEPs before they are accepted and
added to the
typing
module.
typing_extensions
is treated specially by static type checkers such as
mypy and pyright. Objects defined in typing_extensions
are treated the same
way as equivalent forms in typing
.
typing_extensions
uses
Semantic Versioning. The
major version will be incremented only for backwards-incompatible changes.
Therefore, it's safe to depend
on typing_extensions
like this: typing_extensions ~=x.y
,
where x.y
is the first version that includes all features you need.
This
is equivalent to typing_extensions >=x.y, <(x+1)
. Do not depend on ~= x.y.z
unless you really know what you're doing; that defeats the purpose of
semantic versioning.
Included items
See the documentation for a complete listing of module contents.
Contributing
See CONTRIBUTING.md
for how to contribute to typing_extensions
.