Summary Getting Started Why TypeScript Future JavaScript Now Classes Classes Emit Classes Super Classes Extensibility Arrow Functions Rest Parameters let const Destructuring for...of Iterators Template Strings Spread Operator Enums Promise Generators Async Await Project Compilation Context tsconfig.json Declaration Spaces Modules File Module Details globals.d.ts Namespaces NodeJS QuickStart Browser QuickStart TypeScript's Type System JS Migration Guide Ambient Declarations Declaration Files Variables Interfaces lib.d.ts Functions Type Assertion Freshness Type Guard String Literal Type Readonly Type Inference Type Compatibility JSX TIPs Quick Object Return String Based Enums Nominal Typing Stateful Functions Bind is Bad Currying Type Instantiation Lazy Object Literal Initialization Classes are Useful Avoid Export Default Limit Property Setters null is bad outFile caution JQuery tips static constructors singleton pattern StyleGuide Common Errors TypeScript Compiler Internals Program AST TIP: Visit Children TIP: SyntaxKind enum Trivia Scanner Parser Parser Functions Binder Binder Functions Binder Declarations Binder Container Binder SymbolTable Binder Error Reporting Checker Checker Diagnostics Checker Error Reporting Emitter Emitter Functions Emitter SourceMaps Contributing