A practical workflow
Start strict, write types at important boundaries, and allow inference to handle straightforward local values. Treat compiler errors as design feedback: they often reveal an unclear state, missing case or uncertain external value.
npx tsc --noEmit npx tsc --watch
Use --noEmit for a fast type-check in continuous integration and --watch while developing. TypeScript complements tests; it cannot prove runtime data, browser behaviour or business rules are correct.
Where to go next
Build a small browser project: a searchable list, note application or dashboard. Model its state with unions, validate incoming data, keep DOM selection local and use interfaces only where a shared contract makes the code easier to understand.
