* fix(49719): omit TS2301 error with enabled usedefineforclassfields
* show error for target lower than esnext with useddefineforclassfields enabled
* change target from esnext to es2022
* Copy type parameters to function with @type tag
Previously, type references to generic types would fail to copy type
parameters from type references in an `@type` tag. Now the type
parameter is copied.
Note that I left 3 places in the checker unchanged, even though they
should technically also get type parameters from type refereneces:
1. getOuterTypeParameters -- not fixing this means that nested function
still won't get instantiated correctly. I'll see how hard this is to
fix.
2. getLocalTypeParameterOfClassOrInterfaceOrTypeAlias -- only applies to
constructor functions which have a type annotation, which doesn't type
check in the first place.
3. isThislessType -- This function is conservative, so should be
possible to make it more conservative without writing a lot of code.
Fixes#49039
* Update API baselines
* Improve narrowing logic for instanceof, type predicates, and assertions
* Accept new baselines
* Add tests
* Tweak algorithm
* Accept new baselines
* Optimize for discriminated unions
* 'keyof undefined' and 'keyof null same as 'keyof never'
* Update tests
* Defer types like `keyof (T & {})`
* Restore test
* Update test
* Accept new baselines
* Add tests
* Support path completions for exports wildcards
* Break up results by directory
* Share code between typesVersions and exports processing
* Revert completion kind change
* Add kinds to tests
* Update existing test
* Support nested conditions, improve recursive globbing
* Elide import equals in transpileModule if referenced only by export type.
* Revise approach to avoid marking alias in export type as referenced.
* Handle type only export specifier.
* Store dts change file path in buildinfo
* With composite, do not write d.ts files if they changed
* Determine dts change based on outputs
* Instead of storing time in buildinfo store filename which was last updated to get modified time stamp from
* Get declaration time change lazily
* Rename per feedback
* Add test when declaration emit has errors and d.ts emit doesnt change which results in incorrect incremental behaviour
* Refactor
* Use declaration diagnostics in the d.ts signature for the file so it can be more accurate for detecting changes to file that could affect other files
Fixes#49527
* Renames and clarifications
* Simplify serialize declaration diagnostics for signature purpose
Do not serialize file name if error is in same file we are emitting. this should avoid having to do file path computation in most cases.
Locations are start and length instead of line and character.
Do not use any indents
* Fix baselines
* Add a simple queue implementation with better performance than `Array.shift`
This lets us clean up the hack introduced in #49581
* Correct typo
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>
Co-authored-by: Mateusz Burzyński <mateuszburzynski@gmail.com>