* Initial support for globs in tsconfig.json * Added caching, more tests * Added stubs to ChakraHost interface for readDirectoryNames/readFileNames * Fixed typos in comments * Changed name of 'reduce' method added to FileSet * Heavily revised implementation that relies on an updated 'readDirectory' API. * more tests * Minor update to shims.ts for forthcoming VS support for globs. * Detailed comments for regular expressions and renamed some files. * Comment cleanup * Fixed new linter warnings * Add upper limit for the program size, fix readDirectory for the symlink files * Add comments * CR feedback / Change upper limit / Add disableSizeLimit compiler option * online and offline CR feedback * Don't count current opened client file if it's TS file * Speed up file searching * Make language service optional for a project * Fix failed tests * Fix project updateing issue after editing config file * Fixing linter and test errors * Bringing back excludes error and fixing faulty test * Fixing lint errors * Passing regular expressions to native hosts * Fix merging issues and multiple project scenario * Refactoring * add test and spit commandLineParser changes to another PR * Fix #8523 * check the declaration and use order if both are not in module file * Type guards using discriminant properties of string literal types * Fix #9098: report missing function impelementation errors for merged classes and namespaces * Narrow type in case/default sections in switch on discriminant property * No implicit returns following exhaustive switch statements * Narrow non-union types to ensure consistent results * Add tests * No Need to store dot token when parsing property access expression * Added tests. * Accepted baselines. * Check tuple types when getting the type node's type. * Accepted baselines. * Fix #9173: clear out lib and types before creating a program in transpileModule * Added tests. * Accepted baselines. * Always check type assertion types. * Clear out unused compiler options when transpiling * Accepted baselines. * improve error message for extending interface * accept baselines * Use helper functions to simplify range tests * Remove String, Number, and Boolean from TypeFlags.Falsy * Add regression test * Accept new baselines * Allow property declarations in .js files * Remove old test * Do not use Object.assing in test * Fix comment * Refactor code to make if statements cheaper * ignore casing when converting a source file path to relative path * add tests & add branches for module interface * Using baselines for transpile unittests (#9195) * Conver to Transpile unittest to use baselines instead * Add baselines * Fix linting error * use resolveEntityName to find interface * add new tests for extends interface * address code style * Refactor navigation bar * routine dom update * Updating readDirectory for tsserverProjectSystem unit tests * Array#map -> ts.map. * Responding to PR feedback * Add conditional index signature for Canvas2DContextAttributes (https://github.com/Microsoft/TypeScript/issues/9244) * Add libcheck tests * Add missing worker types * Accept webworker baselines * Classify `this` in parameter position as a keyword * Adding more matchFiles test cases * Use implicit boolean casts; it doesn't hurt performance * Use getCanonicalFileName * export interface used by other exported functions * Fix from merging with master * Update tests and baselines from merging with master * Remove using dotToken as it is no longer needed * Update baselines from removing dotToken * Address PR: Add NodeEmitFlags to no indent when emit * Address PR; and refactor setting NodeEmitFlags for createMemberAccessForPropertyName * Update baselines
TypeScript
TypeScript is a language for application-scale JavaScript. TypeScript adds optional types, classes, and modules to JavaScript. TypeScript supports 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, and stay up to date via our blog and Twitter account.
Installing
For the latest stable version:
npm install -g typescript
For our nightly builds:
npm install -g typescript@next
Contribute
There are many ways to contribute to TypeScript.
- Submit bugs and help us verify fixes as they are checked in.
- Review the source code changes.
- Engage with other TypeScript users and developers on StackOverflow.
- Join the #typescript discussion on Twitter.
- Contribute bug fixes.
- Read the language specification (docx, pdf, md).
Documentation
Building
In order to build the TypeScript compiler, ensure that you have Git and Node.js installed.
Clone a copy of the repo:
git clone https://github.com/Microsoft/TypeScript.git
Change to the TypeScript directory:
cd TypeScript
Install Jake tools and dev dependencies:
npm install -g jake
npm install
Use one of the following to build and test:
jake local # Build the compiler into built/local
jake clean # Delete the built compiler
jake LKG # Replace the last known good with the built one.
# Bootstrapping step to be executed when the built compiler reaches a stable state.
jake tests # Build the test infrastructure using the built compiler.
jake runtests # Run tests using the built compiler and test infrastructure.
# You can override the host or specify a test for this command.
# Use host=<hostName> or tests=<testPath>.
jake runtests-browser # Runs the tests using the built run.js file. Syntax is jake runtests. Optional
parameters 'host=', 'tests=[regex], reporter=[list|spec|json|<more>]'.
jake baseline-accept # This replaces the baseline test results with the results obtained from jake runtests.
jake lint # Runs tslint on the TypeScript source.
jake -T # List the above commands.
Usage
node built/local/tsc.js hello.ts
Roadmap
For details on our planned features and future direction please refer to our roadmap.