ty是由Astral(知名工具uv和Ruff的研發團隊)基於Rust語言開發的超高速Python類型檢查器和語言服務程式。
它的運行速度比mypy、Pyright等主流工具快10~100倍,不僅輸出詳細且易於理解的錯誤提示信息,還支持代碼自動完成、懸停視圖評論等核心IDE功能。可以使用uvx ty check命令直接嘗試該工具。藉助ty,開發人員可以提前排除潛在的代碼錯誤,通過實時反饋大幅提高編碼效率,並顯著優化VS Code等編輯器的開發生產力。
一句話總結:
ty是一款性能驅動的Python靜態類型檢查器+語言伺服器,用Rust編寫,目標是成為下一代Pyright/mypy。
為什麼需要新的Python類型檢查器?
Python的類型系統近年來發展迅速:
打字、PEP 484 / 544 / 563 / 695議定書、字面、TypedDict- 「像靜態語言一樣編寫Python」的工程實踐越來越多
但現實是:
- mypy:規則嚴格,但速度慢,工程經驗「學術」
- 皮萊特:快速但複雜且巨大的實現(TypScript)
- 在大型Python項目中, 類型檢查已成為CI的性能瓶頸
Astral團隊的判斷很簡單:
Python的類型檢查已經到了「必須重寫一次」的階段。
什麼是ty?這不是「另一個mypy」
TY不是一個簡單的lint工具,而是一個 完整類型分析引擎:
- ✅ 靜態類型檢查器
- ✅ 語言伺服器(SPL)。
- ✅ 增量分析
- ✅ 專為大型代碼庫設計
它的位置更接近:
「Python類型系統的鐵鏽級性能+工程級實施」
核心設計目標:速度第一
在Rust中重寫一切
ty的第一本質只有一個原則: 快速.
- 實施為使用 鏽
- 強類型+零成本抽象
- 內存布局、並發性和生命周期都是可控的
這使得ty理論上擁有:
- 個數量級 比Python實現更快
- 比TypScript實現更接近底層
增量分析
傳統類型檢查的問題包括:
更改一行代碼|重新分析整個項目
ty的策略是:
- 細化依賴圖
- 只有 重新分析受影響的最小子圖
- 針對IDE場景進行優化,而不僅僅針對CLI
這對於 大型知識庫+高頻編輯 .
類型系統不是「儘可能長時間地運行」,而是「結構正確」
ty不僅僅是「檢查注釋是否正確」,而是嘗試構建:
- 約束系統 類型之間
- 類型推理路徑
- 類型合併、交叉、縮小
這意味著這不是黑客攻擊,而是 可以隨著時間的推移而進化的發動機.
ty Buttons僅用於CLI,首先是MPS
ty從一開始就假設它將在編輯器中運行。
支持的典型能力:
- 懸停式懸停
- 轉到定義
- 類型錯誤的即時反饋
- 自動導入(未來)
這讓ty更像是:
Python世界的鐵鏽分析器
而不是一個「運行後會給你一堆錯誤」的工具。
它和Pyright / mypy的區別
| 尺寸 | mypy | 皮萊特 | Ty |
|---|---|---|---|
| 實現語言 | Python | TypeScript | 鏽 |
| 性能目標 | 正確性 | 正確+快速 | 極快 |
| 架構複雜性 | 介質 | 高 | 高,但低 |
| IDE優先級 | 低 | 高 | 極高 |
| 項目階段 | 成熟 | 成熟 | 早期(但雄心勃勃) |
一條評論:
TY是一款「向後設計未來」的類型檢查器。
Github:https://github.com/astral-sh/ty
管材: