TypeScript pros and cons