2/2/2025
TypeScript Patterns We Actually Use
TypeScript pays for itself the moment a refactor stops being terrifying. A few patterns we reach for often: model your domain with discriminated unions instead of optional fields, so an invalid state literally can't be represented. Narrow early with user-defined type guards at the boundary of your app — API responses, form input — so the rest of your codebase can trust its types. And avoid `any` by modeling the shape you actually expect, even if it takes an extra five minutes; the alternative is finding out at runtime, in production, on your customer's phone.
Need help with web development?
Websites and web apps engineered to bring in customers.