Over the last 3 years, we've migrated to TypeScript, and made it one of our core values. I'd like to share some tricks and best practices we've discovered and adopted, such as:
gradual migration to TypeScript
non-trivial use of type aliases
upgrading TypeScript without breaking things
type safety with modular CSS
custom linter rules enforcing consistency and strong types
... and more.