Elixir 1.20 ships with a gradual typing system built on optional type specs. Developers can now annotate functions, structs, and literals, and the compiler will verify consistency where types are provided. Existing code runs unchanged; missing specs are ignored. The feature relies on a new type‑checker that integrates with the existing Dialyzer pipeline.
The addition matters because Elixir has long marketed itself as a highly readable, dynamic language for concurrent applications. Optional static checks give teams a safety net for large codebases while preserving the flexibility that attracted early adopters. It also narrows the gap with languages that already blend dynamic and static typing.
Expect a learning curve as libraries add spec annotations, and watch for community feedback on the checker’s false‑positive rate.