Type Inference
In plain terms
The compiler deducing types so you don't have to write them.
Going deeper
Type inference figures out variable and expression types automatically, giving static-typing safety with less verbosity. Strong inference can eliminate most annotations.
Under the hood
Algorithms like Hindley-Milner infer types globally; it keeps code concise while still catching type errors at compile time.
Examples
var/auto keywords, Haskell, TypeScript, Rust let bindings, Kotlin.
Think of it like...
Like a smart assistant who fills in the obvious blanks on a form so you don't repeat yourself.