%% generate tags start %%
#software-engineering
%% generate tags end %%
#software-engineering/typescript
## What is Typescript?

TypeScript is a programming language developed and maintained by Microsoft, which is a superset of [[JavaScript]] that adds static typing and other useful features to the language. It helps catch errors early through its type system and compiles down to JavaScript, ensuring compatibility with any JavaScript environment.
• Offers additional features to JavaScript including static types
• Using types is completely optional
• Compiles down to regular JS
• Can be used for front-end JS as well as backend with Node.js
• Includes most features from ES6, ES7 (classes, arrow functions, etc)
• Types from 3rd party libraries can be added with type definitions
## What are the good resources of typescript?

The typescript handbook contains everything you need to know: [TypeScript: Handbook - The TypeScript Handbook (typescriptlang.org)](https://www.typescriptlang.org/docs/handbook/intro.html)
To learn more: [TypeScript: The starting point for learning TypeScript (typescriptlang.org)](https://www.typescriptlang.org/docs/)
To practice typescript, you can use the playground: [TypeScript: TS Playground - An online editor for exploring TypeScript and JavaScript (typescriptlang.org)](https://www.typescriptlang.org/play?#code/MYewdgziA2CmB00QHMAUBtARAQQGwEMBGTAAgBoScDD5iKqj4AGATkwF14oAnAF1QCUAoA)
## Ecosystem of typescript
## Runtime typecheck
While typescript only offer static type-checking, some libraries indeed gives you runtime type-checking 🤩
![[run time typecheck]]