用途:为 Python 代码添加类型提示、用 mypy 做静态类型检查,并掌握 Protocol、TypedDict、泛型等高级类型特性,提升代码可维护性与 IDE 支持。
主要能力:基础类型与集合、Optional/Union、3.10+ 的 | 语法与 3.9+ 内置泛型;TypeVar 泛型函数与类、bound 约束;Protocol 结构化子类型与 runtime_checkable;TypedDict(NotRequired、total=False、继承);Literal、TypeAlias、Callable、ParamSpec/Concatenate、TypeGuard、overload;TYPE_CHECKING 避免循环导入、cast、type: ignore。
使用方式:安装 mypy:pip install mypy;检查文件或目录:mypy my_module.py 或 mypy src/;严格模式:mypy --strict src/;指定配置:mypy --config-file mypy.ini src/;生成 HTML 覆盖率报告:mypy --html-report mypy-report src/。可在 mypy.ini 或 pyproject.toml 的 [tool.mypy] 中配置 python_version、disallow_untyped_defs 等,并用 [[tool.mypy.overrides]] 按模块覆盖。
适用场景:为库或公开 API 设计类型安全的接口、定义结构化接口、描述字典形状、编写带类型的装饰器与运行时类型收窄。
限制与注意:资料未提供具体版本兼容性、性能影响或除 mypy 外的工具支持;应避免滥用 Any、忘记处理 Optional 的 None、可变默认参数及循环导入,并建议逐�渐添加类型提示。