Kurz erklärt
Bei der Typinferenz ermittelt der Compiler die Datentypen selbst aus dem Zusammenhang, sodass man sie nicht überall hinschreiben muss – ohne die Sicherheit der statischen Typprüfung aufzugeben.
Genauer
Aus let x = 5 folgt int, aus x + 1.5 folgt float. Der Compiler prüft weiterhin alle Typen vor dem Start. Die Technik ist in Haskell, OCaml und F# am weitesten entwickelt (Hindley-Milner-Verfahren) und steckt in var/auto (Java, C#, C++), val (Kotlin, Scala), let (Rust, Swift), := (Go) und TypeScript.