type-theory-rs
wakame-tech/type-theory-rs は、型推論と型チェックを Rust で自作する個人プロジェクト。TypeScript が採用しているような 構造的部分型(structural subtyping) の実装を目標とする。
やったこと
- 2024-05-16 時点で、TypeScript 流の構造的部分型を実装し、型推論と型チェックが動くようになった(「良い感じに型推論と型チェックされるようになった」)。
- 構造的部分型では、名前ではなくレコード/オブジェクトの構造(フィールドの集合)で部分型関係を判定する。詳細は subtyping-variance を参照。
今後
- type narrowing(型の絞り込み、TypeScript の制御フロー解析に相当)が TODO として残っている。
- 推論の基盤としては hindley-milner-inference 系のアルゴリズムが関連する。
関連: subtyping-variance・type-theory-lambda-cube・hindley-milner-inference