Typescript is free and open source programming language and developed by and maintained by Microsoft.
It is free, open source and superset of the JavaScript. TypeScript is designed for development of small/large applications and transcompiles to JavaScript
Typescript is an object-oriented programming, as well as optional static typing to the JavaScript. Typescript provides the functionalities of Object-Oriented Programming like class, Interface, Inheritance, Encapsulation etc.
Typescript supports multiple trans-compilation options, either the default TypeScript Checker can be used or Babel compiler can be invoked to transcompiles TypeScript to plain JavaScript.
TypeScript may be used to develop application using javascript for both client-side and server-side execution (Node.js or Deno).
Its supports definition files that can contain type information of existing JavaScript libraries, much like C or C++ header files can describe the structure of existing object files.
TypeScript compiler is written in TypeScript and compiled to JavaScript. Typescript licensed is under the Apache License 2.0, January 2004.
TypeScript was first launched for public use in October 2012, as the version 0.8 of the typescript language. Typescript was a result of two years of developed at Microsoft, with Anders Hejlsberg(the lead architect of c#). Anders Hejlsberg was also creator of Delhi and Turbo Pascal.
Miguel de Icaza praised the language itself, but he was criticized the lack of mature IDE support apart from Microsoft Visual Studio, which was not available for Linux and OS X operating system at that time
TypeScript version 0.9 was released in 2013 which support for generics feature. Typescript version 1.0 was released at Microsoft build developer conference(San Francisco) in 2014.
TypeScript development team was announced a new TypeScript compiler in July 2015, claiming that new compiler five times performance gains. Typescript source code was originally hosted on CodePlex and was shifted to Github
TypeScript 2.0 was released in September 2016. Its introduced server features like null- and undefined-aware types, control flow based type analysis, discriminated union types, never type, readonly keyword, type of this for functions.
Version |
Release date |
Features |
0.8 |
October 2012 |
|
0.9 |
June 2013 |
|
1.1 |
October 2014 |
performance improvements |
1.3 |
November 2014 |
tuple types, protected modifier |
1.4 |
January 2015 |
let and const declarations, template strings, type guards, type aliases, union types |
1.5 |
July 2015 |
for..of support, decorators, namespace keyword, ES6 modules |
1.6 |
September 2015 |
local type declarations, abstract classes and methods, JSX support, intersection types, user-defined type guard functions |
1.7 |
November 2015 |
Async, await |
1.8 |
February 2016 |
control flow analysis errors, string literal types, constraints generics, allow Js |
2.0 |
September 2016 |
null- and undefined-aware types, discriminated union types, never type, control flow-based type analysis, read only keyword, type of this for functions |
2.1 |
November 2016 |
mapped types, keyof and lookup types, object spread and rest |
2.2 |
February 2017 |
object type, mix-in classes |
2.3 |
April 2017 |
generic parameter defaults, strict option, async iteration |
2.4 |
June 2017 |
string enums, improved inference for generics, strict contravariance for call-back parameters, dynamic import expressions |
2.5 |
August 2017 |
Optional catch binding |
2.6 |
October 2017 |
Support for JSX Fragments, strict function types, cached tagged template objects in modules, include localized diagnostics in npm, Install from @types |
2.7 |
January 2018 |
fixed length tuples, constant-named properties, Numeric separators, Definite assignment assertions |
2.8 |
March 2018 |
conditional types, improved keyof with intersection types, emitDeclarationOnly |
2.9 |
May 2018 |
support for symbols and numeric literals in keyof and mapped object types, Declaration source maps and code navigation via them |
3.0 |
July 2018 |
extracting and spreading parameter lists with tuples, project references, Auto-closing JSX tags, Tuples in rest parameters and spread expressions |
3.1 |
September 2018 |
mappable tuple and array types, Property assignments on function declarations |
3.2 |
November 2018 |
call, and apply, stricter checking for bind, Allow non-unit types in union discriminants, Generic spread expressions in object literals, Type-checking support for BigInt |
3.3 |
January 2019 |
incremental builds for composite projects, relaxed rules on methods of union types |
3.4 |
March 2019 |
type inference from generic functions, faster incremental builds, readonly modifier for arrays, type-checking global, const assertions |
3.5 |
May 2019 |
faster incremental builds, omit helper type, improved excess property checks in union types, smarter union type checking |
3.6 |
August 2019 |
better unicode support for identifiers, Stricter generators, more accurate array spread, Semicolon-aware auto-imports |
3.7 |
November 2019 |
Optional Chaining, Nullish Coalescing, Recursive Type References, Flattened Property/Method Reporting, Auto-inserted await for completions , Allow allowJs and declaration to be used together |
3.8 |
February 2020 |
Variadic types, investigate nominal typing support, Flattening declarations, Implement ES Decorator proposal, Investigate Ambient, Deprecated, and Conditional decorators |