Paradigm | Multi-paradigm: functional, generic, imperative, object-oriented |
---|---|
Designed by | Microsoft |
Developer | Microsoft |
First appeared | 1 October 2012[1] |
Stable release | 5.6.3[2]
/ 9 October 2024 |
Typing discipline | Duck, gradual, structural[3] |
License | Apache License 2.0 |
Filename extensions | .ts, .tsx, .mts, .cts |
Website | www |
Influenced by | |
C#, F#,[4] Java, JavaScript, ActionScript[5] | |
Influenced | |
AtScript, AssemblyScript, ArkTS |
TypeScript is a free and open-source high-level programming language developed by Microsoft that adds static typing with optional type annotations to JavaScript. It is designed for the development of large applications and transpiles to JavaScript.[6].
TypeScript may be used to develop JavaScript applications for both client-side and server-side execution (as with Node.js, Deno or Bun). Multiple options are available for transpilation. The default TypeScript Compiler can be used,[7] or the Babel compiler can be invoked to convert TypeScript to JavaScript.
TypeScript supports definition files that can contain type information of existing JavaScript libraries, much like C++ header files can describe the structure of existing object files. This enables other programs to use the values defined in the files as if they were statically typed TypeScript entities. There are third-party header files for popular libraries such as jQuery, MongoDB, and D3.js. TypeScript headers for the Node.js library modules are also available, allowing development of Node.js programs within TypeScript.[8]
The TypeScript compiler is itself written in TypeScript and compiled to JavaScript. It is licensed under the Apache License 2.0. Anders Hejlsberg, lead architect of C# and creator of Delphi and Turbo Pascal, has worked on the development of TypeScript.[9][10][11][12]
TypeScript was directly influenced by F#: one of the originators of TypeScript was Luke Hoban, who began TypeScript (then called Strada) immediately after working on F# 2.0. Recently he noted the influence of F# on early parts of the TypeScript design [Hoban 2017].