TypeScript use cases