The type system at senior depth, generics and inference, TypeScript with Vue and Nuxt, tsconfig and TypeScript 7, runtime validation, typing smells.
Pages
- Type system fundamentalsStructural typing, unknown versus any versus never, unions and intersections, literal types and as const, narrowing and type guards, satisfies, readonly and tuples, enums versus unions, and the strictness flags that matter.
- Generics and inferenceGeneric functions and constraints, inference sites and NoInfer, conditional and distributive types, infer, mapped types with key remapping, template literal types, the utility types worth knowing, and when a generic is over-engineering.
- TypeScript with Vue and NuxtTyping props, emits, slots and models through the compiler macros, generic components, typing refs and injection, Nuxt's generated types — auto-imports, components, typed routes, typed $fetch, runtimeConfig and app.config augmentation — and where declarations must live.
- Modules, declarations and configurationThe tsconfig options that matter in a Vite and Nuxt project, module resolution and verbatimModuleSyntax, project references, writing and shipping declaration files, ambient and module augmentation, Node's native type stripping, and what TypeScript 6 and 7 changed.
- Runtime validation and type safetyTypes are erased, so safety comes from validating at boundaries — schemas with zod, valibot and ArkType under Standard Schema, deriving types from schemas, sharing them between Nuxt server and client, branded types, exhaustive checks, typed errors and Result types.
- Typing patterns and smells[object Object]
Notes for the whole section