2019-05-12 20:42:52 +02:00
# TypeScript
2019-08-16 22:12:25 +02:00
[![Build Status ](https://travis-ci.org/microsoft/TypeScript.svg?branch=master )](https://travis-ci.org/microsoft/TypeScript)
2020-06-16 19:26:28 +02:00
[![Devops Build Status ](https://dev.azure.com/typescript/TypeScript/_apis/build/status/Typescript/node10 )](https://dev.azure.com/typescript/TypeScript/_build?definitionId=7)
2015-11-12 16:38:04 +01:00
[![npm version ](https://badge.fury.io/js/typescript.svg )](https://www.npmjs.com/package/typescript)
2017-04-18 12:05:43 +02:00
[![Downloads ](https://img.shields.io/npm/dm/typescript.svg )](https://www.npmjs.com/package/typescript)
2014-10-10 02:31:22 +02:00
2019-05-02 20:02:00 +02:00
[TypeScript ](https://www.typescriptlang.org/ ) is a language for application-scale JavaScript. TypeScript adds optional types to JavaScript that support tools for large-scale JavaScript applications for any browser, for any host, on any OS. TypeScript compiles to readable, standards-based JavaScript. Try it out at the [playground ](https://www.typescriptlang.org/play/ ), and stay up to date via [our blog ](https://blogs.msdn.microsoft.com/typescript ) and [Twitter account ](https://twitter.com/typescript ).
2014-07-08 02:08:16 +02:00
2019-10-22 19:43:52 +02:00
Find others who are using TypeScript at [our community page ](https://www.typescriptlang.org/community/ ).
2015-07-24 20:28:08 +02:00
## Installing
For the latest stable version:
2017-09-07 21:20:56 +02:00
```bash
2015-07-24 20:28:08 +02:00
npm install -g typescript
```
For our nightly builds:
2017-09-07 21:20:56 +02:00
```bash
2015-07-24 20:28:08 +02:00
npm install -g typescript@next
```
2014-07-08 02:08:16 +02:00
2014-07-17 19:08:24 +02:00
## Contribute
2019-08-16 22:12:25 +02:00
There are many ways to [contribute ](https://github.com/microsoft/TypeScript/blob/master/CONTRIBUTING.md ) to TypeScript.
* [Submit bugs ](https://github.com/microsoft/TypeScript/issues ) and help us verify fixes as they are checked in.
* Review the [source code changes ](https://github.com/microsoft/TypeScript/pulls ).
2019-05-07 20:33:18 +02:00
* Engage with other TypeScript users and developers on [StackOverflow ](https://stackoverflow.com/questions/tagged/typescript ).
2019-10-22 19:43:52 +02:00
* Help each other in the [TypeScript Community Discord ](https://discord.gg/typescript ).
2018-10-31 19:05:43 +01:00
* Join the [#typescript ](https://twitter.com/search?q=%23TypeScript ) discussion on Twitter.
2019-08-16 22:12:25 +02:00
* [Contribute bug fixes ](https://github.com/microsoft/TypeScript/blob/master/CONTRIBUTING.md ).
* Read the language specification ([docx](https://github.com/microsoft/TypeScript/blob/master/doc/TypeScript%20Language%20Specification.docx?raw=true),
[pdf ](https://github.com/microsoft/TypeScript/blob/master/doc/TypeScript%20Language%20Specification.pdf?raw=true ), [md ](https://github.com/microsoft/TypeScript/blob/master/doc/spec.md )).
2014-07-17 19:08:24 +02:00
2019-05-07 20:33:18 +02:00
This project has adopted the [Microsoft Open Source Code of Conduct ](https://opensource.microsoft.com/codeofconduct/ ). For more information see
the [Code of Conduct FAQ ](https://opensource.microsoft.com/codeofconduct/faq/ ) or contact [opencode@microsoft.com ](mailto:opencode@microsoft.com )
2016-09-14 01:43:52 +02:00
with any additional questions or comments.
2014-07-17 19:08:24 +02:00
2014-07-13 17:05:31 +02:00
## Documentation
2019-10-05 06:53:09 +02:00
* [TypeScript in 5 minutes ](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html )
2017-06-23 21:51:12 +02:00
* [Programming handbook ](https://www.typescriptlang.org/docs/handbook/basic-types.html )
2019-08-16 22:12:25 +02:00
* [Language specification ](https://github.com/microsoft/TypeScript/blob/master/doc/spec.md )
2017-06-23 21:51:12 +02:00
* [Homepage ](https://www.typescriptlang.org/ )
2014-07-13 17:05:31 +02:00
## Building
2014-07-08 02:08:16 +02:00
2017-06-23 21:51:12 +02:00
In order to build the TypeScript compiler, ensure that you have [Git ](https://git-scm.com/downloads ) and [Node.js ](https://nodejs.org/ ) installed.
2014-07-21 19:38:22 +02:00
Clone a copy of the repo:
2017-09-07 21:20:56 +02:00
```bash
2019-08-16 22:12:25 +02:00
git clone https://github.com/microsoft/TypeScript.git
2014-07-21 19:38:22 +02:00
```
Change to the TypeScript directory:
2017-09-07 21:20:56 +02:00
```bash
2014-07-21 19:38:22 +02:00
cd TypeScript
```
2019-02-21 00:32:15 +01:00
Install [Gulp ](https://gulpjs.com/ ) tools and dev dependencies:
2014-07-21 19:38:22 +02:00
2017-09-07 21:20:56 +02:00
```bash
2019-02-21 00:32:15 +01:00
npm install -g gulp
2014-07-21 19:38:22 +02:00
npm install
```
Use one of the following to build and test:
2017-09-07 21:21:33 +02:00
```
2019-08-16 23:36:36 +02:00
gulp local # Build the compiler into built/local.
gulp clean # Delete the built compiler.
gulp LKG # Replace the last known good with the built one.
# Bootstrapping step to be executed when the built compiler reaches a stable state.
gulp tests # Build the test infrastructure using the built compiler.
gulp runtests # Run tests using the built compiler and test infrastructure.
# Some low-value tests are skipped when not on a CI machine - you can use the
# --skipPercent=0 command to override this behavior and run all tests locally.
# You can override the specific suite runner used or specify a test for this command.
# Use --tests=< testPath > for a specific test and/or --runner=< runnerName > for a specific suite.
# Valid runners include conformance, compiler, fourslash, project, user, and docker
# The user and docker runners are extended test suite runners - the user runner
# works on disk in the tests/cases/user directory, while the docker runner works in containers.
# You'll need to have the docker executable in your system path for the docker runner to work.
gulp runtests-parallel # Like runtests, but split across multiple threads. Uses a number of threads equal to the system
# core count by default. Use --workers=< number > to adjust this.
gulp baseline-accept # This replaces the baseline test results with the results obtained from gulp runtests.
2019-08-17 15:37:39 +02:00
gulp lint # Runs eslint on the TypeScript source.
2019-08-16 23:36:36 +02:00
gulp help # List the above commands.
2014-07-21 19:38:22 +02:00
```
## Usage
2017-09-07 21:20:56 +02:00
```bash
2014-08-07 08:21:53 +02:00
node built/local/tsc.js hello.ts
2014-07-21 19:38:22 +02:00
```
2014-07-17 19:12:43 +02:00
## Roadmap
2019-08-16 22:12:25 +02:00
For details on our planned features and future direction please refer to our [roadmap ](https://github.com/microsoft/TypeScript/wiki/Roadmap ).