use TypeScript