Skip to main content
TypeScript
  • Download
  • Docs
  • Handbook
  • Community
  • Playground
  • Tools
Note: we are testing out the new v2 site over the weekend, if we have missed something you rely on please file issues on microsoft/TypeScript-Website.
This site uses cookies for analytics, personalized content and ads. By continuing to browse this site, you agree to this use. Learn more
  • Playground
  • TS Config

      TS Config

  • Examples

      See how TypeScript improves day to day working with JavaScript with minimal additional syntax.

      JavaScript Essentials

      1. Hello World
      2. Objects and Arrays
      3. Functions
      4. Code Flow

      Functions with JavaScript

      1. Generic Functions
      2. Typing Functions
      3. Function Chaining

      Working With Classes

      1. Classes 101
      2. This
      3. Generic Classes
      4. Mixins

      Modern JavaScript

      1. Async Await
      2. Immutability
      3. Import Export
      4. JSDoc Support

      External APIs

      1. TypeScript with Web
      2. TypeScript with React
      3. TypeScript with Deno
      4. TypeScript with Node
      5. TypeScript with WebGL

      Helping with JavaScript

      1. Quick Fixes
      2. Errors

      Explore how TypeScript extends JavaScript to add more safety and tooling.

      Primitives

      1. Any
      2. Literals
      3. Union and Intersection Types
      4. Unknown and Never

      Type Primitives

      1. Tuples
      2. Built-in Utility Types
      3. Nullable Types

      Meta-Types

      1. Conditional Types
      2. Discriminate Types
      3. Indexed Types
      4. Mapped Types

      Language

      1. Soundness
      2. Structural Typing
      3. Type Guards
      4. Type Widening and Narrowing

      Language Extensions

      1. Enums
      2. Nominal Typing
      3. Types vs Interfaces
  • What's New

      See the Release notes.

      New JS Features

      1. JSDoc Deprecated
      2. Logical Operators and Assignment
      3. Nullish Coalescing

      New TS Features

      1. Named Tuples
      2. Unknown in Catch
      3. Variadic Tuples

      New Checks

      1. Class Constructor Code Flow

      See the Release notes.

      Syntax and Messaging

      1. Export Modules From
      2. Private Class Fields
      3. Type Imports

      Breaking Changes

      1. Checking Unions with Index Signatures

      JSDoc Improvements

      1. Accessibility Modifiers

      See the Release notes.

      Syntax and Messaging

      1. Optional Chaining
      2. Nullish Coalescing
      3. Flattened Error Reporting

      Types and Code Flow

      1. Assertion Functions
      2. Uncalled Function Checks
      3. Recursive Type References

      Fixits

      1. Big number literals
      2. Const to let
      3. Infer From Usage Changes

      Learn what has changed in this website.

      Language

      1. Automatic Type Acquisition
      2. Fixits

      Config

      1. New Compiler Defaults
      2. JavaScript Playgrounds

      Tooling

      1. Sharable URLs
      2. TypeScript Versions
      3. Mobile Support
  • Settings

Downloading TypeScript...

  • Version......
    • Run
    • Export
      • Report GitHub issue on TypeScript
      • Copy as Markdown Issue
      • Copy as Markdown Link
      • Copy as Markdown Link with Preview
      • Open in TypeScript AST Viewer
      • Open in CodeSandbox
      • Open in StackBlitz
    • ⇥

    Popular Documentation Pages

    • Basic Types

      JavaScript primitive types inside TypeScript

    • Advanced Types

      TypeScript language extensions to JavaScript

    • Functions

      How to provide types to functions in JavaScript

    • Interfaces

      How to provide a type shape to JavaScript objects

    • Variable Declarations

      How to create and type JavaScript variables

    • TypeScript in 5 minutes

      An overview of building a TypeScript web app

    • TSConfig Options

      JavaScript primitive types inside TypeScript

    • Classes

      How to provide types to JavaScript ES6 classes

    Made with ♥ in Redmond, Boston, SF & NYC

    Microsoft Logo

    © 2012-2020 Microsoft
    Privacy

    Using TypeScript

    • Get Started
    • Download
    • Community
    • Playground
    • TSConfig Ref
    • Why TypeScript
    • Design
    • Code Samples

      See how TypeScript improves day to day working with JavaScript with minimal additional syntax.

      JavaScript Essentials

      1. Hello World
      2. Objects and Arrays
      3. Functions
      4. Code Flow

      Functions with JavaScript

      1. Generic Functions
      2. Typing Functions
      3. Function Chaining

      Working With Classes

      1. Classes 101
      2. This
      3. Generic Classes
      4. Mixins

      Modern JavaScript

      1. Async Await
      2. Immutability
      3. Import Export
      4. JSDoc Support

      External APIs

      1. TypeScript with Web
      2. TypeScript with React
      3. TypeScript with Deno
      4. TypeScript with Node
      5. TypeScript with WebGL

      Helping with JavaScript

      1. Quick Fixes
      2. Errors

      Explore how TypeScript extends JavaScript to add more safety and tooling.

      Primitives

      1. Any
      2. Literals
      3. Union and Intersection Types
      4. Unknown and Never

      Type Primitives

      1. Tuples
      2. Built-in Utility Types
      3. Nullable Types

      Meta-Types

      1. Conditional Types
      2. Discriminate Types
      3. Indexed Types
      4. Mapped Types

      Language

      1. Soundness
      2. Structural Typing
      3. Type Guards
      4. Type Widening and Narrowing

      Language Extensions

      1. Enums
      2. Nominal Typing
      3. Types vs Interfaces

    Community

    • Get Help
    • Blog
    • GitHub Repo
    • Community Chat
    • @TypeScript
    • Stack Overflow