Durch Typinferenz (englisch Type inference mit type „(Daten-)Art“ oder „Datentyp“ und inference „Schlussfolgerung“), auch Typableitung genannt, kann in manchen (stark typisierten) Programmiersprachen viel Schreibarbeit eingespart werden, indem auf die Niederschrift von Typangaben verzichtet wird, die aus den restlichen Angaben und den Typisierungsregeln hergeleitet (rekonstruiert) werden können; dazu bedient man sich derselben Regeln, die auch zur Typprüfung dienen, als deren Fortentwicklung die Typinferenz in gewisser Weise anzusehen ist. Bei der Durchführung bestimmt man durch Unifikation den allgemeinsten Typ (Haupttyp, principal type) eines Terms.
Die Entwicklung der Typinferenz (für ML) durch Milner[Anm 1] war ein Meilenstein in der Entwicklung der Programmiersprachen. Sie bedingte, ermöglichte aber zugleich auch anspruchsvollere Typsysteme, die damit erheblich an Bedeutung gewannen. Gewisse Spracheigenschaften wie Typanpassungen und manchmal Überladen wurden zurückgedrängt, weil sie mit der Typinferenz kollidieren.
Viele Programmiersprachen unterstützen Typinferenz, zum Beispiel: Python, Java, C++11, C# und Visual Basic.
Referenzfehler: <ref>
-Tags existieren für die Gruppe Anm, jedoch wurde kein dazugehöriges <references group="Anm" />
-Tag gefunden.