Architecture for Large TypeScript Projects
As a TypeScript codebase grows, a shared types/ (or per-domain
*.types.ts) convention keeps interfaces reusable and consistent
across layers:
src/
types/ # shared interfaces (User, Product, ...)
routes/
services/
repositories/
Keeping domain types in one place (rather than redefining a User
shape separately in three different files) avoids subtly-diverging
duplicate types over time.