* Update LKG
* Update version
* Update LKG
* Skip overloads with too-short function parameters
If the parameter of an overload is a function and the argument is also a
function, skip the overload if the parameter has fewer arguments than
the argument does. That overload cannot possibly apply, and should not
participate in, for example, contextual typing.
Example:
```ts
interface I {
(a: number): void;
(b: string, c): void;
}
declare function f(i: I): void;
f((x, y) => {});
```
This code now skips the first overload instead of considering.
This was a longstanding bug but was only uncovered now that more
functions expressions are context sensitive.
* Test skip overloads w/too-short function params
1. Update changed baseline.
2. Add a new test with baseline.
* Minor style improvements
* Ignore optionality when skipping overloads
* Do not use contextual signatures with too few parameters
* isAritySmaller runs later: getNonGenericSignature
* rewrite void-returning statements in constructors that capture result of super call (#11868)
* rewrite void-returning statements in constructors that capture result of super call
* linter
* Update LKG
* Fix emit inferred type which is a generic type-alias both fully and partially fill type parameters
* Add tests and baselines
* Skip trying to use alias if there is target type
* Update baselines
* Add diagnostics to remind adding tsconfig file for certain external project (#11932)
* Add diagnostics for certain external project
* Show tsconfig suggestion
* fix lint error
* Address pr
* fix comment
* Update error message
* Flag for not overwrite js files by default without generating errors (#11980)
* WIP
* Properly naming things
* refactor
* apply the option to all files and check out options
* Fix typo
* Update LKG
* lockLinter
* use local registry to check if typings package exist (#12014) (#12032)
use local registry to check if typings package exist
* Add test for https://github.com/Microsoft/TypeScript/pull/11980 (#12027)
* add test for the fix for overwrite emitting error
* cr feedback
* enable sending telemetry events to tsserver client (#12034) (#12051)
enable sending telemetry events
* Update LKG
* Reuse subtree transform flags for incrementally parsed nodes (#12088)
* Update LKG
* Update version
* Update LKG
* Do not emit "use strict" when targeting es6 or higher or module kind is es2015 and the file is external module
* Add tests and baselines
* [Release 2.1] fix11754 global augmentation (#12133)
* Exclude global augmentation from module resolution logic
* Address PR: check using string literal instead of NodeFlags.globalAugmentation
* Remove comment
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).
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
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 Gulp tools and dev dependencies:
npm install -g gulp
npm install
Use one of the following to build and test:
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.
# You can override the host or specify a test for this command.
# Use host=<hostName> or tests=<testPath>.
gulp runtests-browser # Runs the tests using the built run.js file. Syntax is gulp runtests. Optional
parameters 'host=', 'tests=[regex], reporter=[list|spec|json|<more>]'.
gulp baseline-accept # This replaces the baseline test results with the results obtained from gulp runtests.
gulp lint # Runs tslint on the TypeScript source.
gulp help # 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.