TypeScript - Type Inference

Inference Basics

let x = 1;           // number
const y = 2;         // 2 (literal type)
let arr = [1, 2, 3]; // number[]

Contextual typing

window.addEventListener('click', e => {
  // e is inferred as MouseEvent
  console.log(e.clientX);
});

Return types

function sum(a: number, b: number) { return a + b } // inferred number

When to annotate

  • Public API surfaces
  • Functions returning unions or complex generic types
  • When inference is unclear to readers