Topic
Structural typing, generics, contracts, nullability, checking tools, and proportional type design.
Practice items tagged with TypeScript Type System.
Separates optional, undefined, null, and invalid external data, then narrows values at the correct boundary.
Uses generics to preserve relationships between types and constraints to express the operations an implementation requires.
Chooses interfaces or aliases based on object contracts, unions, composition, declaration merging, and team consistency.
Explains assignability by shape, excess-property checks, and the gap between compile-time compatibility and runtime identity.
Uses derived types for genuine relationships while preserving explicit boundaries for domain and transport models.
Separates declared variable types, unchecked developer assertions, and compatibility checking that preserves useful inferred types.