JavaScriptに任意の静的型付けを追加し、読みやすく標準準拠のJavaScriptにコンパイルできる上位互換言語です。
python/mypy
Pythonを実行せずに、PEP 484の型ヒントを使ったコードの型エラーを検出する静的型チェッカー。
- スター
- 20,717
- フォーク
- 3,376
- 未解決の Issue
- 3,232
- 最終コミット
- 昨日
これは何?
MypyはPython向けの静的型チェッカーです。コードに型ヒント(PEP 484)を追加すると、値や関数が互換性のない型で使われている箇所を報告し、プログラムの実行前に多くのバグを検出できます。
型付けは段階的に進められます。コードベースに少しずつ注釈を追加でき、静的型が不便な箇所では動的型付けに戻せます。型ヒントはプログラムの実行方法を変えないため、mypyが問題を指摘したコードも通常のPythonインタープリターで実行できます。型システムは、型推論、ジェネリクス、呼び出し可能型、タプル型とユニオン型、構造的部分型をサポートしています。
大規模なプロジェクト向けに、mypyは高速な差分再チェックを行うデーモンモード(dmypy)を備えています。VS Code、Vim、Emacs、Sublime Textなどのエディターと連携でき、pre-commitフックでも実行できます。mypy自体もmypycでコンパイルされています。
主な機能
- 01コードを実行せずに型ヒント(PEP 484)をチェックし、互換性のない使い方を報告する。
- 02型推論、ジェネリクス、呼び出し可能型、タプル型とユニオン型、構造的部分型をサポートする。
- 03段階的な型付けに対応し、型注釈のないコードと注釈付きコードを共存させられる。
- 04大規模なコードベースを高速に差分チェックするデーモンモード(dmypy)を備える。
- 05VS Code、Vim、Emacs、Sublime Textなどのエディターと連携する。
ユースケース
- Pythonプロジェクトで型に関するバグを本番環境に出る前に検出する。
- 既存のレガシーなPythonコードベースに型注釈を段階的に追加する。
- チームのプロジェクトでCIやpre-commitフックによる型チェックを徹底する。
クイックスタート
- 1
pipでmypyをインストールする
python3 -m pip install -U mypy - 2
プログラムの型チェックを行う
mypy PROGRAM
収録されている特集
トピック
よくある質問
- mypy とは?
- Pythonを実行せずに、PEP 484の型ヒントを使ったコードの型エラーを検出する静的型チェッカー。 MypyはPython向けの静的型チェッカーです。コードに型ヒント(PEP 484)を追加すると、値や関数が互換性のない型で使われている箇所を報告し、プログラムの実行前に多くのバグを検出できます。
- mypy は無料で使えますか?ライセンスは?
- mypy は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- mypy は今もメンテナンスされていますか?
- 活発にメンテナンス中。mypy の最終コミットは 2026年11月6日 です。
- mypy は何に使えますか?
- Pythonプロジェクトで型に関するバグを本番環境に出る前に検出する。 既存のレガシーなPythonコードベースに型注釈を段階的に追加する。 チームのプロジェクトでCIやpre-commitフックによる型チェックを徹底する。
- mypy のインストール方法は?
- pipでmypyをインストールする: python3 -m pip install -U mypy プログラムの型チェックを行う: mypy PROGRAM
- mypy はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/python/mypy
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Pythonの実行時型チェッカー。関数、任意のオブジェクト、ローカル変数に付けたPEP 484アノテーションを検証します。
実行時のオーバーヘッドを最小限に抑え、関数・クラス・変数にPEP準拠の型ヒントを適用する純粋なPython製ランタイム型チェッカー。
Rust製の高速なPython型チェッカー兼言語サーバー。コードナビゲーション、補完、セマンティックハイライトなどのIDE機能を備えています。
TypeScript 7のコンパイラーと言語サーバーをRustに移植した、型チェックとコード出力のドロップイン置き換えです。