1) While you decide to take new library or framework: For example, you are choosing React for new project and you are not very much known with React APIs. But you need to incorporate the same, since they offer type definitions. For navigating and discovering new interfaces you can get intellisense.
2) Compile Time Type Checking: For performing runtime type verification you can use Vanilla JS. This will increase additional runtime. This can be avoided by compile-time validation.
3) Works great with big projects: It is a great idea to use TypeScript when you have vast projects and your large number of developers working together on it.
• Optional parameter feature.
• Rest Parameter feature.
• Generics support.
• Modules support.
3) Included Dependencies: For using libraries with TypeScript you would need their type definitions, and with every type definition, it invites an extra npm package. Also, depending on extra packages means you are accepting some risk, which is not good. That’s why you will gonna lose many typescript properties and benefits whenever you didn’t iport type type definitions.