内容提要
Astral 发布用 Rust 编写的 Python 类型检查器与语言服务器 ty 的 Beta 版。其增量架构使编辑器内更新极快,比 mypy、Pyright 快 10 至 60 倍,重算诊断仅需 4.7 毫秒。ty 支持交叉类型、类型收窄和优秀诊断,采用 MIT 许可。下一步将修复稳定性、补全类型规范并支持 Pydantic、Django,目标明年发布稳定版。
延伸解读
性能优势的实际意义
ty 在无缓存命令行检查中比 mypy 和 Pyright 快 10 至 60 倍,在编辑器内增量更新时差距更大:编辑 PyTorch 文件后重算诊断仅需 4.7 毫秒,而 Pyright 需 386 毫秒,Pyrefly 需 2.38 秒。这种速度意味着在大型项目中,类型检查几乎不会打断编码流程,实时反馈成为可能。
诊断系统:不只是报错
ty 的诊断系统借鉴了 Rust 编译器的设计,能跨文件收集上下文,不仅指出错误,还解释原因并给出修复建议。例如,为字典键赋无效值时,会同时显示赋值处的类型不匹配和对应的项声明。这种诊断方式对人和 AI 代理都更友好,有助于快速定位和解决问题。
Beta 版的定位与限制
ty 目前处于 Beta 阶段,Astral 已在内部项目中全面使用,并推荐有动力的用户在生产环境尝试。但稳定版计划明年发布,期间将重点修复稳定性问题、补全 Python 类型规范的长尾特性,并增加对 Pydantic、Django 等流行库的一流支持。因此,现阶段可能不适合对稳定性要求极高的关键项目。
开源与生态整合
ty 采用 MIT 许可证,由核心团队和数十位贡献者共同开发,编辑器扩展同样开源。它支持任何实现 LSP 的编辑器,并提供了 VS Code 扩展。未来,ty 还计划为 Astral 工具链提供语义能力,如死代码消除、未使用依赖检测、CVE 可达性分析等,有望提升整个 Python 生态的开发效率。
Q&A
ty 是什么?它由谁开发?
ty 是 Astral 用 Rust 编写的极速 Python 类型检查器与语言服务器,是 mypy、Pyright 等工具的替代品。
ty 的速度比 mypy 和 Pyright 快多少?
在没有缓存的情况下,ty 比 mypy 和 Pyright 快 10 到 60 倍。在编辑器中,重新计算诊断信息仅需 4.7 毫秒,比 Pyright 快 80 倍,比 Pyrefly 快 500 倍。
ty 如何实现极快的编辑器内更新?
ty 的整个架构围绕“增量性”构建,当用户编辑文件或修改函数时,只重新运行必要的计算,从而实现极快的实时更新。
ty 支持哪些编辑器功能?
ty 语言服务器支持现代语言服务器的所有预期功能,包括转到定义、符号重命名、自动补全、自动导入、语义语法高亮、内联提示等,并可在任何实现 LSP 的编辑器中运行。
ty 的 Beta 版发布后,下一步计划是什么?
Beta 版发布后,优先支持早期采用者,然后致力于明年发布稳定版。Beta 到稳定版之间的工作重点包括:稳定性和错误修复、完成 Python 类型规范的长尾功能、以及为 Pydantic 和 Django 等流行第三方库提供一流支持。
ty 采用什么许可证?如何安装?
ty 采用 MIT 许可证。可以通过 uv 安装:uv tool install ty@latest,或通过 VS Code 扩展安装。