Home TypeScript reference TYPESCRIPT / THE COURSE
TypeScript reference Use this index when you already know the question. For the complete sequence, return to the learning path . For an error message, search the course .
Runtime versus static contracts
Inference and modeling
Concept
Lesson
Literal widening, const versus let
Values and types
Control-flow analysis, guards, truthiness
Narrowing
Structural typing, excess property checking
Structural typing
Interface extension, intersections, merging
Interfaces and aliases
Assertions, as const, satisfies
Assertions and satisfies
Generic constraints and inference
Generics
keyof, typeof, T[K]
Indexed access
Partial, Pick, Omit, key remapping
Mapped types
infer, distributive conditionals
Conditional types
String event names
Template literal types
Discriminated unions, never, state machines
Exhaustiveness
Contravariance, covariance, method bivariance
Variance
Applications and libraries
Concept
Lesson
target, lib, strict, exactOptionalPropertyTypes
tsconfig
NodeNext, moduleResolution, ESM/CJS, package exports
Modules
Promises, AbortController, async iteration
Async
fetch, status, retries, pagination
HTTP clients
Tests, inference tests, expected failures
Testing
ESLint, Prettier, compiler responsibilities
Static analysis
Process signals, configuration, graceful shutdown
Node application
Overloads, public inference
Library design
.d.ts, ambient declarations, DefinitelyTyped
Declaration files
npm pack, types, ESM delivery
Publishing
Workspaces, project references
Large repositories
Compiler timings, native parallelism
Performance
allowJs, checkJs, JSDoc
Migration
Prototypes, private fields, generics in classes
Advanced design
Domain boundaries, adapters, DTOs
Architecture
Parser, binder, checker, emit, LSP
Compiler tooling
CI, upgrades, semver, release evidence
Shipping
Error-oriented index
Diagnostic family
What to inspect
TS2322: not assignable
Required shape, possible absence, function direction; structural typing
TS2345: argument not assignable
Parameter contract and narrowing; generics
TS18046: unknown value
Evidence at the boundary; runtime validation
TS2532 / TS18047: possibly undefined or null
Presence policy; errors and null
TS2353: extra property
Fresh literal versus wider object; structural typing
TS2375: exact optional properties
Missing versus explicit undefined; tsconfig
TS2540: readonly write
Mutation ownership; objects
TS1361: type-only import used as value
Erased binding versus runtime import; modules
TS2578: unused expect-error
Stale or ineffective negative test; testing
Exact diagnostics depend on source and the pinned compiler. The numbered lessons show real captured diagnostics, including locations and alternatives, rather than a universal error-text promise.