Type Inference
L'inférence de types déduit automatiquement les types des expressions sans annotations explicites ; l'algorithme de Hindley-Milner est le socle des langages fonctionnels.
Objectif
Réduire la charge d'annotation tout en conservant la sûreté du typage statique.
Mécanisme
Hindley-Milner dérive le type le plus général (type principal) par unification. L'algorithme W génère des contraintes de types depuis les expressions et les unifie. Rust utilise une variante de HM plus les durées de vie. TypeScript utilise l'inférence structurelle.
Cas d’usage
- Langages fonctionnels
- Déduction de types en Rust
- Inférence en TypeScript