Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upRoadmap
This page outlines specific features and fixes that are scheduled or planned for given releases. The current 6-month roadmap that outlines focus areas of work can be viewed here.
-
Feature already available in
typescript@next
Future
- Variadic types
- Investigate nominal typing support
- Flattening declarations
- Implement ES Decorator proposal
- Implement ES Private Fields
- Investigate Ambient, Deprecated, and Conditional decorators
- Investigate partial type argument inference
- Quick fix to Scaffold local
@typespackages - Investigate error messages in haiku or iambic pentameter
- Decorators for function expressions/arrow functions
3.5 (May 2019)
See the 3.5 Iteration Plan for more details.
- Negated types
-
The
Omithelper type -
globalThisexpressivity fixes - Strongly typed iterators and generators
-
Stricter types for
IteratorResult -
--declarationand--allowJs -
--declarationand--isolatedModules -
APIs for composite projects (
--buildmode) - Smart Select API
- Sorted/prioritized completions
- Refactoring to extract type
3.4 (March 2019)
See the 3.4 Iteration Plan for more details.
- Higher order function type inference
-
--incrementalbuilds with.tsbuildinfofiles - Improved support for read-only arrays and tuples
- Const contexts for literal expressions
-
globalThis - Refactorings to...
3.3 (January 2019)
- Relaxed rules on methods of union types
-
File-incremental builds in
--build --watchmode for composite projects
3.2 (November 2018)
- Strict bind, call, and apply methods on functions
- Allow non-unit types in union discriminants
- Generic spread expressions in object literals
- Generic object rest variables and parameters
-
Type-checking support for
BigInt - Configuration inheritance through node packages
-
Supporting
Object.definePropertyproperty assignments in JS -
Support printing the implied configuration object to the console with
--showConfig - Improved formatting and indentation for lists and chained calls
- Quick fixes to...
3.1 (September 2018)
- Mapped tuple and array types
- Property assignments on function declarations
-
typesVersionsredirects - Error UX improvements
- Refactorings to...
3.0 (July 2018)
- Support for project references/composite projects
- Tuples in rest parameters and spread expressions
-
New
unknowntop type -
/// <reference lib="..." />reference directives -
Support for
defaultPropsandpropTypesin React JSX elements - Error UX improvements
- Refactors to...
- Quick fixes to...
- Outlining spans for JSX expressions
- Auto-closing JSX tags
2.9 (May 2018)
- Support number and symbol named properties with keyof and mapped types
- Support for passing generics to JSX elements
- Support for passing generics to tagged template calls
-
Allow
import(...)-ing types at any location -
--prettyerror output by default -
Support for
import.meta -
New
--resolveJsonModule - Declaration source maps and code navigation via them
- Show suggestion diagnostics for open files
- Show unused declarations as suggestions
- Support setting quote style in quick fixes and refactorings
- New Rename File command
- Refactors to...
- Quick fix to...
2.8 (March 2018)
- Conditional types
- Type inference in conditional types
-
Predefined conditional types in
lib.d.ts - Improved control over mapped type modifiers
-
Improved
keyofwith intersection types -
New
--emitDeclarationOnly - Better handling for namespace-patterns in .js files
- Support for per-file JSX pragmas
- New Organize imports command
- Quick fix for uninitialized class properties
2.7 (January 2018)
-
Support for properties named with
const-declared symbols - Strict property initialization checks in classes
- Definite assignment assertions
- Improved type inference for object literals
- Improved handling of structurally identical classes
- Fixed length tuples
-
Type guards inferred from
inoperator - Numeric separators
-
Support for
import d from "cjs"form CommonJS modules with--esModuleInterop - Apply all quick fixes in a file
- Refactors to convert CommonJS module to ES6 module
- Support for incremental builder compiler API
-
Quick fix to add missing
asynckeyword - Completion list preselects suggested item based on context
-
Completion list includes
this., brackets, and curlies for JSX
2.6 (October 2017)
- Strict function types
- Support for JSX Fragments
- Cached tagged template objects in modules
- Include localized diagnostics in npm
-
Suppress errors in .ts files using
// @ts-ignorecomments -
Speed improvements to
--watch - Automatic imports from completion lists
- Refactors to...
- Quick fixes to...
-
Support outlining for
// #regions
2.5 (August 2017)
-
Assertion/cast JSDoc syntax in
checkJsmode - Refactoring to extract functions & methods
-
Optional
catchbinding - Quick fixes to...
2.4 (June 2017)
- Infer from generic function return types
- Contextual generic function types
- Stricter generic signature checks
- Covariant checking for callback parameters
- String valued members in enums
- Weak type detection
-
ES dynamic
import()expressions - Refactoring support in Language Service API
- Suggestions and quick fixes for spelling corrections in error messages
2.3 (April 2017)
- Generator support for ES3/ES5
- Asynchronous iterators
- Generic defaults
-
Controlling
thisin methods of object literals through contextual type - JSX stateless components overload resolution
-
JSX
childrenchecking -
New
--strictmaster option -
Report errors in .js files with new
--checkJs -
Enhanced
tsc --initoutput - Language Service Extensibility
2.2 (February 2017)
- Mixin classes
- Allow deriving from object and intersection types
-
Support for
new.target - Improved checking of nullable operands in expressions
-
Update
__extendsto useObject.setPrototypeOf - Allow property (dotted) access for types with string index signatures
- Support for JSX spread children
-
New
--jsx react-native -
Support for the
objecttype. - More Quick Fixes!
2.1 (December 2016)
- Switch to a transformation-based emitter
-
async/awaitsupport for ES5/ES3 - Support for external helpers library
-
Static types for dynamically named properties (
keyof TandT[K]) -
Mapped types (e.g.
{ [P in K]: T[P] }) - Support ESNext object property spread and rest
- Better inference for literal types
- Use returned values from super calls as 'this'
- Control flow analysis for implicit any variables
- Control flow analysis for array construction
- Narrow string and number types in literal equality checks
- Contextual typing of partially annotated signatures
- Normalize union/intersection type combinations
-
New
--jsxFactory -
New
--alwaysStrict -
Support for
--target ES2016,--target ES2017and--target ESNext - Configuration inheritance
- Go to implementation support
- Completions in imports and triple-slash reference paths
- Quick fixes support in language service API
- Untyped (implicit-any) imports
2.0
- Non-nullable types
- Control flow based type analysis
- Discriminated union types
- Improved definition file acquisition
-
Specifying
thistypes for functions - Type guards on property access
- Readonly properties and index signatures
- Use path mappings in module resolution
- Shorthand ambient module declarations and wildcard matching in module names
- Implicit index signatures
- Support private and protected constructors
-
Support
abstractproperties - Optional properties in classes
-
The
nevertype -
--skipLibCheckcompiler option -
Support for declaration output folder using
--declarationDir - Glob support in tsconfig.json
-
Improve lib.d.ts modularity and new
--libsupport - Support for UMD module definitions
- Trailing Commas in Function Param Lists
-
Support for jsdoc
@typedeffor JS files - Completion lists for string literals
- Module name in imports allow .js extension
- Support 'target:es5' with 'module:es6'
-
Flag unused declarations with
--noUnusedLocalsand--noUnusedParameters - Number, boolean, and Enum literal types
1.8
-
Allow JavaScript in TypeScript compilations with
--allowjs -
Allow captured
let/constin loops - Flag unreachable code
-
Concatenate module output with
--outFile - Accept comments in tsconfig.json
-
Stylize error messages in terminal output with
--pretty -
Support for
--outFilewith named pipes, sockets, and special devices - Support computed property with literal names
- String literal types
- Stateless Functional Components in JSX
- Improved union/intersection type inference
- Support for F-Bounded Polymorphism
-
Support full path for
-project/-pparameter - Extract type information from JSDoc in js files
-
Support for
defaultimport interop with SystemJS using--allowSyntheticDefaultImports - Recognize prototype assignments in JavaScript files
- Augmenting global/module scope from other modules
- Use tsconfig.json as higher priority source of configuration in Visual Studio
-
this-based type guards -
Support for custom JSX factories using
--reactNamespace - Improved checking of for-in statements
- Colorization of JSX code in VS 2015
- Publish official TypeScript NuGet packages
1.7
- ES7 exponentiation operator
-
Polymorphic
thistype -
Support
--modulewith--target es6 - Support for decorators when targeting ES3
-
async/awaitsupport for ES6 (Node v4) - Improved checking of destructuring with literal initializers
1.6
- ES6 Generators
- Local types
- Generic type aliases
- Expressions in class extends clauses
- Class expressions
-
excludeproperty in tsconfig.json - User defined type guard functions
- External module resolution enhancements
- JSX support
- Intersection types
-
abstractclasses and methods - Strict object literal assignment checking
- Declaration merging for classes and interfaces
- New --init
1.5
- Support for Destructuring
- Support for Spread Operator
- Support for ES6 Modules
- Support for for..of
- Support for ES6 Unicode specification
- Support for Symbols
- Support for Computed properties
- Support for tsconfig.json files
- Support for let and const in ES3/ES5
- Support for tagged templates in ES3/ES5
- Expose a new editor interface through TS Server
- Support for ES7 Decorators proposal
- Support for Decorator type metadata
- New --rootDir
- New ts.transpile API
- Support --module umd
- Support --module system
- New --noEmitHelpers
- New --inlineSourceMap
- New --inlineSources
- New --newLine
- New --isolatedModules
-
Support for new
namespacekeyword - Support for tsconfig.json in Visual Studio 2015
- Improved template literal highlighting in Visual Studio 2013
1.4
- Support for Union Types and Type Guards
- New --noEmitOnError
- New --target ES6
- Support for Let and Const
- Support for Template Literals
- Library typings for ES6
- Support for Const enums
- Export Language Service public API
1.3
- Language service re-write to target new compiler
- Support for protected members in classes
- Support for Tuple Types