TypeScript / THE COURSESearch

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

Question Start here
Why doesn't a type annotation validate JSON? Runtime validation
What is unknown vs any? any, unknown, never, void
Why can a readonly value change? Objects and aliasing
Why does this compile and still fail? Runtime safety
Is a brand an authorization check? Advanced type design

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.