The Type System
If you’ve used C or any other statically typed language before, nothing I’m about to say will be a surprise. Typescript is a typed language with optional type notations. Types allow developers to specify the types of data their code expects, and in specifying those types, the tooling around TypeScript is able to infer how the code is expected to behave (to some degree).
Many developers aren’t fond of being required to add type annotations, so it’s worth emphasizing that they’re entirely optional. Without type annotations, TypeScript can infer types and work much of its magic.
TypeScript can compile to ECMAScript 3 or later, so developers needn’t have any worries about browser compatibility.
TypeScript has been widely adopted. Angular 2, Google’s front-end framework is written in TypeScript. You can use React with TypeScript. And of course, Microsoft is fully on-board.