It can feel like Babel and TypeScript have largely overlapping use cases: both allow you to use modern Javascript features, even before all relevant browsers support them. Thus, do you even need Babel when you use TypeScript? Or conversely: now that Babel has added TypeScript support, can you replace TypeScript with Babel? What's the difference? Why does a project like Create React App combine the two?