Type Script History

Type Script History

Definition of the Language

  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.

History of TypeScript

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.



Timeline of Typescript


Release date



October 2012



June 2013



October 2014

performance improvements


November 2014

tuple types, protected modifier


January 2015

let and const declarations, template strings, type guards, type aliases, union types


July 2015

for..of support, decorators, namespace keyword,  ES6 modules


September 2015

local type declarations, abstract classes and methods, JSX support, intersection types,  user-defined type guard functions


November 2015

Async, await


February 2016

control flow analysis errors, string literal types, constraints generics, allow Js


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


November 2016

mapped types, keyof and lookup types,  object spread and rest


February 2017

object type, mix-in classes


April 2017

generic parameter defaults, strict option, async iteration


June 2017

string enums, improved inference for generics, strict contravariance for call-back parameters, dynamic import expressions


August 2017

Optional catch binding


October 2017

Support for JSX Fragments, strict function types, cached tagged template objects in modules, include localized diagnostics in npm, Install from @types


January 2018

fixed length tuples, constant-named properties, Numeric separators, Definite assignment assertions


March 2018

conditional types, improved keyof with intersection types, emitDeclarationOnly


May 2018

support for symbols and numeric literals in keyof and mapped object types, Declaration source maps and code navigation via them


July 2018

extracting and spreading parameter lists with tuples,  project references, Auto-closing JSX tags, Tuples in rest parameters and spread expressions


September 2018

mappable tuple and array types, Property assignments on function declarations


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


January 2019

incremental builds for composite projects, relaxed rules on methods of union types


March 2019

type inference from generic functions, faster incremental builds,  readonly modifier for arrays, type-checking global, const assertions


May 2019

faster incremental builds, omit helper type, improved excess property checks in union types, smarter union type checking


August 2019

better unicode support for identifiers, Stricter generators, more accurate array spread, Semicolon-aware auto-imports


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


February 2020

Variadic types, investigate nominal typing support, Flattening declarations, Implement ES Decorator proposal, Investigate Ambient, Deprecated, and Conditional decorators