-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve CLI error messages #16
Conversation
Nice! Happy to have some better error messages in the command line. I'll take a closer look tomorrow. |
Update: looks like it's possible to get rid of |
Here's something kind of weird... With these changes in the expectTypeOf({a: 1}).toMatchTypeOf<{a: number; b?: string}>()
expectTypeOf({a: 1}).not.toMatchTypeOf<{a: number; b?: string}>() In |
Good catch, thank you. I've converted this to a draft since there are a few things up in the air and it isn't ready to go in. |
Spent some time talking about this with @shicks and @12wrigja and we came up with some good ideas for some more dx. Succinctly, it's a change like this: const error = Symbol('error')
type ExpectedToBeNull<T> = {[error]: T}
type ExpectedNotToBeNull<T> = {[error]: T}
type IsASuperTypeOf<T> = {[error]: T}
type IsNotASuperTypeOf<T> = {[error]: T}
export type ExpectTypeOf<Actual, B extends boolean> = {
toBeNull:
Extends<Actual, null> extends B ?
() => true :
B extends true ? ExpectedToBeNull<Actual> : ExpectedToNotBeNull<Actual>
toMatchTypeOf: {
<Expected extends (
B extends true ?
(Extends<Actual, Expected> extends true ? unknown : IsASuperTypeOf<Actual>) :
(Extends<Actual, Expected> extends false ? unknown : IsNotASuperTypeOf<Actual>)
)>(): true
<Expected extends (
B extends true ?
(Extends<Actual, Expected> extends true ? unknown : IsASuperTypeOf<Actual>) :
(Extends<Actual, Expected> extends false ? unknown : IsNotASuperTypeOf<Actual>)
)>(
expected: Expected,
): true
} For
For
and for
This loses tsc telling you specifically what wasn't matching between expected and actual as having the previous comparison be backwards was a bit misleading but it does print out the types so you're aware of what types you were dealing with. Unfortunately, there's quite a bit of noise in these. I recognize that this snippet doesn't handle |
Hello, I didn't really look well at the PR, but just wanted to mention that I've noticed that the message that appears when hovering on an IDE can change significantly between TS versions. In particular, the expansions of generic expressions. Some versions may show |
Seems like the easy solution here is to just make sure any possible expansion is readable. In particular, type IsASupertypeOf<T> = {[error]: T}; is not particularly readable if it's expanded, but if the internal symbol were instead type IsASupertypeOf<T> = {[isASuperTypeOf]: T}; then it shouldn't really matter whether it's expanded or not - I can't imagine any reasonable way TypeScript could format that badly. |
@trevorade @shicks @12wrigja I did something like this and I think it's a big improvement - thank you!! I ended up doing lots of refactoring, including separating out positive from negative assertions and reduce |
I'm merging this and will release as v0.17.0 soon. |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@types/glob](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/glob) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/glob)) | [`8.0.0` -> `8.1.0`](https://renovatebot.com/diffs/npm/@types%2fglob/8.0.0/8.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fglob/8.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fglob/8.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fglob/8.0.0/8.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fglob/8.0.0/8.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash)) | [`4.14.186` -> `4.14.202`](https://renovatebot.com/diffs/npm/@types%2flodash/4.14.186/4.14.202) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2flodash/4.14.202?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2flodash/4.14.202?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2flodash/4.14.186/4.14.202?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2flodash/4.14.186/4.14.202?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@types/verror](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/verror) ([source](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/verror)) | [`1.10.6` -> `1.10.9`](https://renovatebot.com/diffs/npm/@types%2fverror/1.10.6/1.10.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fverror/1.10.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fverror/1.10.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fverror/1.10.6/1.10.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fverror/1.10.6/1.10.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@vitest/ui](https://github.com/vitest-dev/vitest/tree/main/packages/ui#readme) ([source](https://github.com/vitest-dev/vitest/tree/HEAD/packages/ui)) | [`0.34.6` -> `0.34.7`](https://renovatebot.com/diffs/npm/@vitest%2fui/0.34.6/0.34.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/0.34.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/0.34.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/0.34.6/0.34.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/0.34.6/0.34.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [del-cli](https://github.com/sindresorhus/del-cli) | [`5.0.0` -> `5.1.0`](https://renovatebot.com/diffs/npm/del-cli/5.0.0/5.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/del-cli/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/del-cli/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/del-cli/5.0.0/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/del-cli/5.0.0/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [expect-type](https://github.com/mmkal/expect-type) | [`0.14.2` -> `0.17.3`](https://renovatebot.com/diffs/npm/expect-type/0.14.2/0.17.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/expect-type/0.17.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/expect-type/0.17.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/expect-type/0.14.2/0.17.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/expect-type/0.14.2/0.17.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [sinon](https://sinonjs.org/) ([source](https://github.com/sinonjs/sinon)) | [`14.0.0` -> `14.0.2`](https://renovatebot.com/diffs/npm/sinon/14.0.0/14.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/sinon/14.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sinon/14.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sinon/14.0.0/14.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sinon/14.0.0/14.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [sqlite3](https://github.com/microsoft/vscode-node-sqlite3) | [`5.0.8` -> `5.1.2`](https://renovatebot.com/diffs/npm/sqlite3/5.0.8/5.1.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/sqlite3/5.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sqlite3/5.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sqlite3/5.0.8/5.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sqlite3/5.0.8/5.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [typescript](https://www.typescriptlang.org/) ([source](https://github.com/Microsoft/TypeScript)) | [`4.8.4` -> `4.9.5`](https://renovatebot.com/diffs/npm/typescript/4.8.4/4.9.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/4.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/4.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/4.8.4/4.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/4.8.4/4.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [uuid](https://github.com/uuidjs/uuid) | [`9.0.0` -> `9.0.1`](https://renovatebot.com/diffs/npm/uuid/9.0.0/9.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/uuid/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/uuid/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/uuid/9.0.0/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/uuid/9.0.0/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>vitest-dev/vitest (@​vitest/ui)</summary> ### [`v0.34.7`](https://github.com/vitest-dev/vitest/compare/v0.34.6...v0.34.7) [Compare Source](https://github.com/vitest-dev/vitest/compare/v0.34.6...v0.34.7) </details> <details> <summary>sindresorhus/del-cli (del-cli)</summary> ### [`v5.1.0`](https://github.com/sindresorhus/del-cli/releases/tag/v5.1.0) [Compare Source](https://github.com/sindresorhus/del-cli/compare/v5.0.1...v5.1.0) - Add `--verbose` flag ([#​37](https://github.com/sindresorhus/del-cli/issues/37)) [`f32b531`](https://github.com/sindresorhus/del-cli/commit/f32b531) ### [`v5.0.1`](https://github.com/sindresorhus/del-cli/releases/tag/v5.0.1) [Compare Source](https://github.com/sindresorhus/del-cli/compare/v5.0.0...v5.0.1) - Fix Windows compatibility for use with `npx` [`537e5b3`](https://github.com/sindresorhus/del-cli/commit/537e5b3) </details> <details> <summary>mmkal/expect-type (expect-type)</summary> ### [`v0.17.3`](https://github.com/mmkal/expect-type/releases/tag/v0.17.3) [Compare Source](https://github.com/mmkal/expect-type/compare/v0.17.2...v0.17.3) - docs: why-is-my-assertion-failing [`907b8aa`](https://github.com/mmkal/expect-type/commit/907b8aa) - I think the previous build was out of date somehow too, so see https://github.com/mmkal/expect-type/releases/v0.17.2 ### [`v0.17.2`](https://github.com/mmkal/expect-type/releases/tag/v0.17.2) [Compare Source](https://github.com/mmkal/expect-type/compare/v0.17.1...v0.17.2) - Improve tuple errors ([#​40](https://github.com/mmkal/expect-type/issues/40)) [`4b38117`](https://github.com/mmkal/expect-type/commit/4b38117) Diff(truncated - scroll right!): ```diff test('toEqualTypeOf with tuples', () => { const assertion = `expectTypeOf<[[number], [1], []]>().toEqualTypeOf<[[number], [2], []]>()` expect(tsErrors(assertion)).toMatchInlineSnapshot(` - "test/test.ts:999:999 - error TS2344: Type '[[number], [2], []]' does not satisfy the constraint '{ [x: number]: { [x: number]: number; [iterator]: (() => IterableIterator<1>) | (() => IterableIterator<number>) | (() => IterableIterator<never>); [unscopables]: (() => { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }) | (() => { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }) | (() => { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }); length: 0 | 1; toString: ... truncated!!!!'. - Types of property 'sort' are incompatible. - Type '(compareFn?: ((a: [] | [number] | [2], b: [] | [number] | [2]) => number) | undefined) => [[number], [2], []]' is not assignable to type '\\"Expected: function, Actual: function\\"'. + "test/test.ts:999:999 - error TS2344: Type '[[number], [2], []]' does not satisfy the constraint '{ 0: { 0: number; }; 1: { 0: \\"Expected: literal number: 2, Actual: literal number: 1\\"; }; 2: {}; }'. + The types of '1[0]' are incompatible between these types. + Type '2' is not assignable to type '\\"Expected: literal number: 2, Actual: literal number: 1\\"'. 999 expectTypeOf<[[number], [1], []]>().toEqualTypeOf<[[number], [2], []]>() ~~~~~~~~~~~~~~~~~~~" `) }) ``` ### [`v0.17.1`](https://github.com/mmkal/expect-type/releases/tag/v0.17.1) [Compare Source](https://github.com/mmkal/expect-type/compare/v0.17.0...v0.17.1) - disallow `.not` and `.branded` together [`cf38918`](https://github.com/mmkal/expect-type/commit/cf38918) (this was actually documented in the [v0.17.0 release](https://github.com/mmkal/expect-type/releases/tag/v0.17.0) but really it was only pushed here) ### [`v0.17.0`](https://github.com/mmkal/expect-type/releases/tag/v0.17.0) [Compare Source](https://github.com/mmkal/expect-type/compare/v0.16.0...v0.17.0) [#​16](https://github.com/mmkal/expect-type/issues/16) went in to - hopefully - significantly improve the error messages produce on failing assertions. Here's an example of how vitest's failing tests were improved: Before: <img width="551" alt="image" src="https://github.com/vitest-dev/vitest/assets/15040698/3bfea594-14b5-4919-9dac-4a562e603d59"> After: <img width="672" alt="image" src="https://github.com/vitest-dev/vitest/assets/15040698/ca106058-178b-401e-be26-6f08ae628fd4"> Docs copied from [the readme](https://github.com/mmkal/expect-type#error-messages) about how to interpret these error messages *** ##### Error messages When types don't match, `.toEqualTypeOf` and `.toMatchTypeOf` use a special helper type to produce error messages that are as actionable as possible. But there's a bit of an nuance to understanding them. Since the assertions are written "fluently", the failure should be on the "expected" type, not the "actual" type (`expect<Actual>().toEqualTypeOf<Expected>()`). This means that type errors can be a little confusing - so this library produces a `MismatchInfo` type to try to make explicit what the expectation is. For example: ```ts expectTypeOf({a: 1}).toEqualTypeOf<{a: string}>() ``` Is an assertion that will fail, since `{a: 1}` has type `{a: number}` and not `{a: string}`. The error message in this case will read something like this: test/test.ts:999:999 - error TS2344: Type '{ a: string; }' does not satisfy the constraint '{ a: \\"Expected: string, Actual: number\\"; }'. Types of property 'a' are incompatible. Type 'string' is not assignable to type '\\"Expected: string, Actual: number\\"'. 999 expectTypeOf({a: 1}).toEqualTypeOf<{a: string}>() Note that the type constraint reported is a human-readable messaging specifying both the "expected" and "actual" types. Rather than taking the sentence `Types of property 'a' are incompatible // Type 'string' is not assignable to type "Expected: string, Actual: number"` literally - just look at the property name (`'a'`) and the message: `Expected: string, Actual: number`. This will tell you what's wrong, in most cases. Extremely complex types will of course be more effort to debug, and may require some experimentation. Please [raise an issue](https://github.com/mmkal/expect-type) if the error messages are actually misleading. The `toBe...` methods (like `toBeString`, `toBeNumber`, `toBeVoid` etc.) fail by resolving to a non-callable type when the `Actual` type under test doesn't match up. For example, the failure for an assertion like `expectTypeOf(1).toBeString()` will look something like this: test/test.ts:999:999 - error TS2349: This expression is not callable. Type 'ExpectString<number>' has no call signatures. 999 expectTypeOf(1).toBeString() ~~~~~~~~~~ The `This expression is not callable` part isn't all that helpful - the meaningful error is the next line, `Type 'ExpectString<number> has no call signatures`. This essentially means you passed a number but asserted it should be a string. If TypeScript added support for ["throw" types](https://github.com/microsoft/TypeScript/pull/40468) these error messagess could be improved. Until then they will take a certain amount of squinting. ##### Concrete "expected" objects vs typeargs Error messages for an assertion like this: ```ts expectTypeOf({a: 1}).toEqualTypeOf({a: ''}) ``` Will be less helpful than for an assertion like this: ```ts expectTypeOf({a: 1}).toEqualTypeOf<{a: string}>() ``` This is because the TypeScript compiler needs to infer the typearg for the `.toEqualTypeOf({a: ''})` style, and this library can only mark it as a failure by comparing it against a generic `Mismatch` type. So, where possible, use a typearg rather than a concrete type for `.toEqualTypeOf` and `toMatchTypeOf`. If it's much more convenient to compare two concrete types, you can use `typeof`: ```ts const one = valueFromFunctionOne({some: {complex: inputs}}) const two = valueFromFunctionTwo({some: {other: inputs}}) expectTypeOf(one).toEqualTypeof<typeof two>() ``` *** Kinda-breaking changes: essentially none, but technically, `.branded` no longer returns a "full" `ExpectTypeOf` instance at compile-time. Previously you could do this: ```ts expectTypeOf<{a: {b: 1} & {c: 1}}>().branded.not.toEqualTypeOf<{a: {b: 1; c: ''}}>() expectTypeOf<{a: {b: 1} & {c: 1}}>().not.branded.toEqualTypeOf<{a: {b: 1; c: ''}}>() ``` Now that won't work (and it was always slightly nonsensical), so you'd have to use `// @​ts-expect-error` instead of `not` if you have a negated case where you need `branded`: ```ts // @​ts-expect-error expectTypeOf<{a: {b: 1} & {c: 1}}>().branded.not.toEqualTypeOf<{a: {b: 1; c: ''}}>() ``` *** #### What's Changed - Improve CLI error messages by [@​mmkal](https://github.com/mmkal) in [https://github.com/mmkal/expect-type/pull/16](https://github.com/mmkal/expect-type/pull/16) - expect-type is usually a dev dependency by [@​SerkanSipahi](https://github.com/SerkanSipahi) in [https://github.com/mmkal/expect-type/pull/39](https://github.com/mmkal/expect-type/pull/39) #### New Contributors - [@​SerkanSipahi](https://github.com/SerkanSipahi) made their first contribution in [https://github.com/mmkal/expect-type/pull/39](https://github.com/mmkal/expect-type/pull/39) **Full Changelog**: https://github.com/mmkal/expect-type/compare/v0.16.0...v0.17.0 ### [`v0.16.0`](https://github.com/mmkal/expect-type/releases/tag/v0.16.0) [Compare Source](https://github.com/mmkal/expect-type/compare/v0.15.0...v0.16.0) #### What's Changed - support functions with `this` parameters by [@​mmkal](https://github.com/mmkal) and [@​papb](https://github.com/papb) in [https://github.com/mmkal/expect-type/pull/15](https://github.com/mmkal/expect-type/pull/15) - Prevent the .not modifier from being chained by [@​trevorade](https://github.com/trevorade) in [https://github.com/mmkal/expect-type/pull/20](https://github.com/mmkal/expect-type/pull/20) - Rewrite `Equal` to use the equality check from `ReadonlyEquivalent` exclusively by [@​trevorade](https://github.com/trevorade) in [https://github.com/mmkal/expect-type/pull/21](https://github.com/mmkal/expect-type/pull/21) Note that [#​21](https://github.com/mmkal/expect-type/issues/21) has affected behavior for intersection types, which can result in (arguably) false errors: ```ts // @​ts-expect-error the following line doesn't compile, even though the types are arguably the same. // See https://github.com/mmkal/expect-type/pull/21 expectTypeOf<{a: 1} & {b: 2}>().toEqualTypeOf<{a: 1; b: 2}>() ``` **Full Changelog**: https://github.com/mmkal/expect-type/compare/v0.15.0...v16.0.0 ### [`v0.15.0`](https://github.com/mmkal/expect-type/releases/tag/v0.15.0) [Compare Source](https://github.com/mmkal/expect-type/compare/v0.14.2...v0.15.0) #### What's Changed - Update Extends to not distribute over union types by [@​trevorade](https://github.com/trevorade) in [https://github.com/mmkal/expect-type/pull/12](https://github.com/mmkal/expect-type/pull/12) #### New Contributors - [@​trevorade](https://github.com/trevorade) made their first contribution in [https://github.com/mmkal/expect-type/pull/12](https://github.com/mmkal/expect-type/pull/12) **Full Changelog**: https://github.com/mmkal/expect-type/compare/v0.14.2...v0.15.0 </details> <details> <summary>sinonjs/sinon (sinon)</summary> ### [`v14.0.2`](https://github.com/sinonjs/sinon/blob/HEAD/CHANGES.md#1402) [Compare Source](https://github.com/sinonjs/sinon/compare/v14.0.1...v14.0.2) - [`4d70f6e0`](https://github.com/sinonjs/sinon/commit/4d70f6e0965b82e387cd632fbe54ed58a8fcf601) Upgrade nise to latest (Morgan Roderick) - [`96a0d756`](https://github.com/sinonjs/sinon/commit/96a0d756b553c38154f442785c34c6092d1ac572) Update [@​sinonjs/samsam](https://github.com/sinonjs/samsam) to latest (Morgan Roderick) - [`babb4736`](https://github.com/sinonjs/sinon/commit/babb4736d7f0080e25dce34fc8ce72879e86792e) Prefer [@​sinonjs/commons](https://github.com/sinonjs/commons)[@​2](https://github.com/2) (Morgan Roderick) > That makes ES2017 support explicit *Released by Morgan Roderick on 2022-11-07.* ### [`v14.0.1`](https://github.com/sinonjs/sinon/blob/HEAD/CHANGES.md#1401) [Compare Source](https://github.com/sinonjs/sinon/compare/v14.0.0...v14.0.1) - [`6c4753ef`](https://github.com/sinonjs/sinon/commit/6c4753ef243880f5cdf1ea9c88b569780f9dc013) Fixed CSS selectors in `_base.scss` and changed blockquote default size to 16px. (Jose Lupianez) - A bunch of dependency updates *Released by [Carl-Erik Kopseng](https://github.com/fatso83) on 2022-10-03.* </details> <details> <summary>microsoft/vscode-node-sqlite3 (sqlite3)</summary> ### [`v5.1.2`](https://github.com/microsoft/vscode-node-sqlite3/compare/15e3606959a08cc5d78046cf9de533b3f53d5f63...b2c911808316bf28b532aa756e6841263ac61279) [Compare Source](https://github.com/microsoft/vscode-node-sqlite3/compare/15e3606959a08cc5d78046cf9de533b3f53d5f63...b2c911808316bf28b532aa756e6841263ac61279) </details> <details> <summary>Microsoft/TypeScript (typescript)</summary> ### [`v4.9.5`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.5): TypeScript 4.9.5 [Compare Source](https://github.com/Microsoft/TypeScript/compare/v4.9.4...v4.9.5) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) #### Changes: - [`69e88ef`](https://github.com/Microsoft/TypeScript/commit/69e88ef5513a81acf69ec78f4af1f927da0d0584) Port ignore deprecations to 4.9 ([#​52419](https://github.com/Microsoft/TypeScript/issues/52419)) - [`daf4e81`](https://github.com/Microsoft/TypeScript/commit/daf4e817a18def96b70ac34703b158ff0e6d58df) Port timestamp fix to 4.9 ([#​52426](https://github.com/Microsoft/TypeScript/issues/52426)) ### [`v4.9.4`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.4): TypeScript 4.9.4 [Compare Source](https://github.com/Microsoft/TypeScript/compare/v4.9.3...v4.9.4) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9). For the complete list of fixed issues, check out the - [fixed issues query for Typescript v4.9.4](https://github.com/Microsoft/TypeScript/issues?utf8=%E2%9C%93\&q=is%3Aissue+milestone%3A%22TypeScript+4.9.4%22+is%3Aclosed+). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) #### Changes: - [`e286821`](https://github.com/Microsoft/TypeScript/commit/e2868216f637e875a74c675845625eb15dcfe9a2) Bump version to 4.9.4 and LKG. - [`eb5419f`](https://github.com/Microsoft/TypeScript/commit/eb5419fc8d980859b98553586dfb5f40d811a745) Cherry-pick [#​51704](https://github.com/Microsoft/TypeScript/issues/51704) to release 4.9 ([#​51712](https://github.com/Microsoft/TypeScript/issues/51712)) - [`b4d382b`](https://github.com/Microsoft/TypeScript/commit/b4d382b9b12460adf2da4cc0d1429cf19f8dc8be) Cherry-pick changes for narrowing to tagged literal types. - [`e7a02f4`](https://github.com/Microsoft/TypeScript/commit/e7a02f43fce47e1a39259ada5460bcc33c8e98b5) Port of [#​51626](https://github.com/Microsoft/TypeScript/issues/51626) and [#​51689](https://github.com/Microsoft/TypeScript/issues/51689) to release-4.9 ([#​51627](https://github.com/Microsoft/TypeScript/issues/51627)) - [`1727912`](https://github.com/Microsoft/TypeScript/commit/1727912f0437a7f367d90040fc4b0b4f3efd017a) Cherry-pick fix around `visitEachChild` to release-4.9. ([#​51544](https://github.com/Microsoft/TypeScript/issues/51544)) This list of changes was [auto generated](https://typescript.visualstudio.com/cf7ac146-d525-443c-b23c-0d58337efebc/\_release?releaseId=117&\_a=release-summary). ### [`v4.9.3`](https://github.com/microsoft/TypeScript/releases/tag/v4.9.3): TypeScript 4.9 [Compare Source](https://github.com/Microsoft/TypeScript/compare/v4.8.4...v4.9.3) For release notes, check out the [release announcement](https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/). Downloads are available on: - [npm](https://www.npmjs.com/package/typescript) - [NuGet package](https://www.nuget.org/packages/Microsoft.TypeScript.MSBuild) #### Changes: - [`93bd577`](https://github.com/Microsoft/TypeScript/commit/93bd577458d55cd720b2677705feab5c91eb12ce) Bump version to 4.9.3 and LKG. - [`107f832`](https://github.com/Microsoft/TypeScript/commit/107f832b80df2dc97748021cb00af2b6813db75b) Update LKG. - [`31bee56`](https://github.com/Microsoft/TypeScript/commit/31bee5682df130a14ffdd5742f994dbe7313dd0e) Cherry-pick PR [#​50977](https://github.com/Microsoft/TypeScript/issues/50977) into release-4.9 ([#​51363](https://github.com/Microsoft/TypeScript/issues/51363)) \[ [#​50872](https://github.com/Microsoft/TypeScript/issues/50872) ] - [`1e2fa7a`](https://github.com/Microsoft/TypeScript/commit/1e2fa7ae15f8530910fef8b916ec8a4ed0b59c45) Update version to 4.9.2-rc and LKG. - [`7ab89e5`](https://github.com/Microsoft/TypeScript/commit/7ab89e5c6e401d161f31f28a6c555a3ba530910e) Merge remote-tracking branch 'origin/main' into release-4.9 - [`e5cd686`](https://github.com/Microsoft/TypeScript/commit/e5cd686defb1a4cbdb36bd012357ba5bed28f371) Update package-lock.json - [`8d40dc1`](https://github.com/Microsoft/TypeScript/commit/8d40dc15d1b9945837e7860320fdccfe27c40cad) Update package-lock.json - [`5cfb3a2`](https://github.com/Microsoft/TypeScript/commit/5cfb3a2fe344a5350734305193e6cc99516285ca) Only call return() for an abrupt completion in user code ([#​51297](https://github.com/Microsoft/TypeScript/issues/51297)) - [`a7a9d15`](https://github.com/Microsoft/TypeScript/commit/a7a9d158e817fcb0e94dc1c24e0a401b21be0cc9) Fix for broken baseline in yieldInForInInDownlevelGenerator ([#​51345](https://github.com/Microsoft/TypeScript/issues/51345)) - [`7f8426f`](https://github.com/Microsoft/TypeScript/commit/7f8426f4df0d0a7dd8b72079dafc3e60164a23b1) fix for-in enumeration containing yield in generator ([#​51295](https://github.com/Microsoft/TypeScript/issues/51295)) <details><summary><b>See More</b></summary> - [`3d2b401`](https://github.com/Microsoft/TypeScript/commit/3d2b4017eb6b9a2b94bc673291e56ae95e8beddd) Fix assertion functions accessed via wildcard imports ([#​51324](https://github.com/Microsoft/TypeScript/issues/51324)) - [`64d0d5a`](https://github.com/Microsoft/TypeScript/commit/64d0d5ae140b7b26a09e75114517b418d6bcaa9f) fix(51301): Fixing an unused import at the end of a line removes the newline ([#​51320](https://github.com/Microsoft/TypeScript/issues/51320)) - [`754eeb2`](https://github.com/Microsoft/TypeScript/commit/754eeb2986bde30d5926e0fa99c87dda9266d01b) Update CodeQL workflow and configuration, fix found bugs ([#​51263](https://github.com/Microsoft/TypeScript/issues/51263)) - [`d8aad26`](https://github.com/Microsoft/TypeScript/commit/d8aad262006ad2d2c91aa7a0e4449b4b83c57f7b) Update package-lock.json - [`d4f26c8`](https://github.com/Microsoft/TypeScript/commit/d4f26c840b1db76c0b25a405c8e73830a2b45cbc) fix(51245): Class with parameter decorator in arrow function causes "convert to default export" refactoring failure ([#​51256](https://github.com/Microsoft/TypeScript/issues/51256)) - [`16faf45`](https://github.com/Microsoft/TypeScript/commit/16faf45682173ea437a50330feb4785578923d7f) Update package-lock.json - [`8b1ecdb`](https://github.com/Microsoft/TypeScript/commit/8b1ecdb701e2a2e19e9f8bcdd6b2beac087eabee) fix(50654): "Move to a new file" breaks the declaration of referenced variable ([#​50681](https://github.com/Microsoft/TypeScript/issues/50681)) - [`170a17f`](https://github.com/Microsoft/TypeScript/commit/170a17fad57eae619c5ef2b7bdb3ac00d6c32c47) Dom update 2022-10-25 ([#​51300](https://github.com/Microsoft/TypeScript/issues/51300)) - [`9c4e14d`](https://github.com/Microsoft/TypeScript/commit/9c4e14d75174432f6a4dc5967a09712a6784ab88) Remove "No type information for this code" from baseline ([#​51311](https://github.com/Microsoft/TypeScript/issues/51311)) - [`88d25b4`](https://github.com/Microsoft/TypeScript/commit/88d25b4f232929df59729156dfda6b65277affec) fix(50068): Refactors trigger debug failure when JSX text has a ' and a tag on the same line. ([#​51299](https://github.com/Microsoft/TypeScript/issues/51299)) - [`8bee69a`](https://github.com/Microsoft/TypeScript/commit/8bee69acf410d4986cb0cc102b949e2d133d5380) Update package-lock.json - [`702de1e`](https://github.com/Microsoft/TypeScript/commit/702de1eeaaef88a189e4d06e5a2aae287853790a) Fix early call to return/throw on generator ([#​51294](https://github.com/Microsoft/TypeScript/issues/51294)) - [`2c12b14`](https://github.com/Microsoft/TypeScript/commit/2c12b1499908ad7718e65d20e264561207c22375) Add a GH Action to file a new issue if we go a week without seeing a typescript-error-deltas issue ([#​51271](https://github.com/Microsoft/TypeScript/issues/51271)) - [`6af270d`](https://github.com/Microsoft/TypeScript/commit/6af270dee09d62516f6dc02ec102a745ffebc037) Update package-lock.json - [`2cc4c16`](https://github.com/Microsoft/TypeScript/commit/2cc4c16a26672a7ba6c97ba16309fcf334db7cae) Update package-lock.json - [`6093491`](https://github.com/Microsoft/TypeScript/commit/60934915d9ccc4ca9c0fb2cd060d7ec81601942b) Fix apparent typo in getStringMappingType ([#​51248](https://github.com/Microsoft/TypeScript/issues/51248)) - [`61c2609`](https://github.com/Microsoft/TypeScript/commit/61c26096e3373719ece686b84c698423890e9a5f) Update package-lock.json - [`ef69116`](https://github.com/Microsoft/TypeScript/commit/ef69116c41cb6805f89e6592eacb0ccb7f02207d) Generate shortest `rootDirs` module specifier instead of first possible ([#​51244](https://github.com/Microsoft/TypeScript/issues/51244)) - [`bbb42f4`](https://github.com/Microsoft/TypeScript/commit/bbb42f453dc684e03d977c5b70391124d57543a9) Fix typo in canWatchDirectoryOrFile found by CodeQL ([#​51262](https://github.com/Microsoft/TypeScript/issues/51262)) - [`a56b254`](https://github.com/Microsoft/TypeScript/commit/a56b254ad3c52b598bc5d44f83f3d0a1cf806068) Include 'this' type parameter in isRelatedTo fast path ([#​51230](https://github.com/Microsoft/TypeScript/issues/51230)) - [`3abd351`](https://github.com/Microsoft/TypeScript/commit/3abd351c0eea55758f27ee5558a4a1525b77f45b) Fix super property transform in async arrow in method ([#​51240](https://github.com/Microsoft/TypeScript/issues/51240)) - [`eed0511`](https://github.com/Microsoft/TypeScript/commit/eed05112180e0d94f78aa02d676d49468f15dc31) Update package-lock.json - [`2625c1f`](https://github.com/Microsoft/TypeScript/commit/2625c1feae25aede35465ca835440fc57bf13d52) Make the init config category order predictable ([#​51247](https://github.com/Microsoft/TypeScript/issues/51247)) - [`1ca99b3`](https://github.com/Microsoft/TypeScript/commit/1ca99b34029dafad2c18af7bdc0711f4abf7e522) fix(50551): Destructuring assignment with var bypasses "variable is used before being assigned" check (2454) ([#​50560](https://github.com/Microsoft/TypeScript/issues/50560)) - [`3f28fa1`](https://github.com/Microsoft/TypeScript/commit/3f28fa12dfecb8dfd66ce4684bf26f64e1f092f1) Update package-lock.json - [`906ebe4`](https://github.com/Microsoft/TypeScript/commit/906ebe49334a3a9c2dbd73cd3c902898bc712b66) Revert structuredTypeRelatedTo change and fix isUnitLikeType ([#​51076](https://github.com/Microsoft/TypeScript/issues/51076)) - [`8ac4652`](https://github.com/Microsoft/TypeScript/commit/8ac465239f52de1da3ada8cdc4c3f107f4d62e45) change type ([#​51231](https://github.com/Microsoft/TypeScript/issues/51231)) - [`245a02c`](https://github.com/Microsoft/TypeScript/commit/245a02cbed7ad50a21289730159abc8d19a66f40) fix(51222): Go-to-definition on return statements should jump to the containing function declaration ([#​51227](https://github.com/Microsoft/TypeScript/issues/51227)) - [`2dff34e`](https://github.com/Microsoft/TypeScript/commit/2dff34e8c4a91c0005ca9ccfb7e045e225b6f2e4) markAliasReferenced should include ExportValue as well ([#​51219](https://github.com/Microsoft/TypeScript/issues/51219)) - [`5ef2634`](https://github.com/Microsoft/TypeScript/commit/5ef2634f3df138323383c7f2e5a05163a924ee86) Update package-lock.json - [`d0f0e35`](https://github.com/Microsoft/TypeScript/commit/d0f0e35c88ae017fc4c1213eb2f83303ee22ebde) Remove old tslint comments ([#​51220](https://github.com/Microsoft/TypeScript/issues/51220)) - [`85d405a`](https://github.com/Microsoft/TypeScript/commit/85d405a1d74c0730a9d8d6307b26e8d6f3f75421) Fixed a false positive "await has no effect on the type" diagnostic with mixed generic union ([#​50833](https://github.com/Microsoft/TypeScript/issues/50833)) - [`1f8959f`](https://github.com/Microsoft/TypeScript/commit/1f8959f5dc04b2b2c2fc8a7dc53b6ac761e1f754) fix: avoid downleveled dynamic import closing over specifier expression ([#​49663](https://github.com/Microsoft/TypeScript/issues/49663)) - [`11066b2`](https://github.com/Microsoft/TypeScript/commit/11066b264f5d30fb5ac1f6c2f3a155c0190e75d2) Rename internal functions to `narrowTypeBySwitchOnTypeOf` and `narrowTypeByInKeyword` ([#​51215](https://github.com/Microsoft/TypeScript/issues/51215)) - [`4c9afe8`](https://github.com/Microsoft/TypeScript/commit/4c9afe8812fcdb4658472ccbced4a5cd4bae70ea) Update package-lock.json - [`f25bcb7`](https://github.com/Microsoft/TypeScript/commit/f25bcb7c27d78ce89e9c9356d27058cf86dbfb5c) fix(49196): add jsdoc snippet for interface member functions ([#​51135](https://github.com/Microsoft/TypeScript/issues/51135)) - [`7406ee9`](https://github.com/Microsoft/TypeScript/commit/7406ee9c145cd7d6117391818d5a1eca2d66ca8f) fix(51170): Completing an unimplemented property overwrites rest of line ([#​51175](https://github.com/Microsoft/TypeScript/issues/51175)) - [`a1d82fc`](https://github.com/Microsoft/TypeScript/commit/a1d82fc9dcced6ca6bde6e21c385d152d083679f) Remove some unnecessary code discovered by rollup ([#​51204](https://github.com/Microsoft/TypeScript/issues/51204)) - [`0481773`](https://github.com/Microsoft/TypeScript/commit/0481773a27fc6a0132c34502fd2a3b0c73cf63a3) LEGO: Merge pull request 51200 - [`98c19cb`](https://github.com/Microsoft/TypeScript/commit/98c19cbbbe83c2ae3c89a4e08317a4b9ccbcb206) LEGO: Merge pull request 51190 - [`13c9b05`](https://github.com/Microsoft/TypeScript/commit/13c9b05384544262363f3fd8b942b36aeb84fc61) Update package-lock.json - [`673475e`](https://github.com/Microsoft/TypeScript/commit/673475e1c5e582f2fd0bf8d89e33c7708607c8d8) Update package-lock.json - [`f6cf510`](https://github.com/Microsoft/TypeScript/commit/f6cf51053e024714dd6b8463fe6f8e7e33461e6b) Add more tracing to node16/nodenext resolution ([#​51168](https://github.com/Microsoft/TypeScript/issues/51168)) - [`83c5581`](https://github.com/Microsoft/TypeScript/commit/83c5581588f660247bd9648bafe67b49de060a55) Update package-lock.json - [`be5f0fe`](https://github.com/Microsoft/TypeScript/commit/be5f0fe5acfed5146514ebe7c1b65529def8e490) Add an extra regression test for awaited unresolvable recursive union ([#​51167](https://github.com/Microsoft/TypeScript/issues/51167)) - [`2cb7e77`](https://github.com/Microsoft/TypeScript/commit/2cb7e779d70d57ef0d46dd3f768e646b8bbe783a) fix(50416): correctly names disabled export refactors ([#​50663](https://github.com/Microsoft/TypeScript/issues/50663)) \[ [#​50416](https://github.com/Microsoft/TypeScript/issues/50416) ] - [`2bcfed0`](https://github.com/Microsoft/TypeScript/commit/2bcfed01f3458996e71ce37af43e3495cb7e4950) feat(37440): Provide a quick-fix for non-exported types ([#​51038](https://github.com/Microsoft/TypeScript/issues/51038)) - [`a24201c`](https://github.com/Microsoft/TypeScript/commit/a24201c8ef6f82b5729ab677b7a1a1d6d745fcb8) Remove VSDevMode.ps1 and createPlaygroundBuild ([#​51166](https://github.com/Microsoft/TypeScript/issues/51166)) - [`2da62a7`](https://github.com/Microsoft/TypeScript/commit/2da62a784bbba237b8239e84c8629cfafb0f595e) fix(51112): omit parameter names that precede the type ([#​51142](https://github.com/Microsoft/TypeScript/issues/51142)) - [`cf1b6b7`](https://github.com/Microsoft/TypeScript/commit/cf1b6b73330eab2dd484d71cbdb662a83b3c726f) feat(51163): show QF to fill in the missing properties for the mapped type. ([#​51165](https://github.com/Microsoft/TypeScript/issues/51165)) - [`bdcc240`](https://github.com/Microsoft/TypeScript/commit/bdcc240d68245e4be865b385bd6a8fd8fa546f56) Remove bug-causing carve-out in conditional type instantiation that hopefully is no longer required ([#​51151](https://github.com/Microsoft/TypeScript/issues/51151)) - [`37317a2`](https://github.com/Microsoft/TypeScript/commit/37317a208f34c141b64e26d0e92b3aed346e531f) Check nested weak types in intersections on target side of relation ([#​51140](https://github.com/Microsoft/TypeScript/issues/51140)) - [`9f49f9c`](https://github.com/Microsoft/TypeScript/commit/9f49f9ccb05a7bb56b8ca84b8036a3ad4e0e7c2b) Update package-lock.json - [`4f54e7e`](https://github.com/Microsoft/TypeScript/commit/4f54e7e947298162d29f3104265e74dcfbc90d82) Fix isExhaustiveSwitchStatement to better handle circularities ([#​51095](https://github.com/Microsoft/TypeScript/issues/51095)) - [`503604c`](https://github.com/Microsoft/TypeScript/commit/503604c884bd0557c851b11b699ef98cdb65b93b) Overloads shouldn't gain [@​deprecated](https://github.com/deprecated) tags of other overloads in quick info ([#​50904](https://github.com/Microsoft/TypeScript/issues/50904)) - [`e14a229`](https://github.com/Microsoft/TypeScript/commit/e14a2298c5add93816c6f487bcfc5ac72e3a4c59) Update package-lock.json - [`67256e5`](https://github.com/Microsoft/TypeScript/commit/67256e50c41aa9178a60c52de8416477f070b190) Remove unused declarations array in extractSymbol's TargetRange ([#​51091](https://github.com/Microsoft/TypeScript/issues/51091)) - [`9c87ded`](https://github.com/Microsoft/TypeScript/commit/9c87ded2b3fc4ba4a9a7656e9be39d5e404e6ab6) fix(51100): ensure tsserver shuts down when parent process is killed ([#​51107](https://github.com/Microsoft/TypeScript/issues/51107)) - [`c01ae01`](https://github.com/Microsoft/TypeScript/commit/c01ae01fac37268bac3362fb6e6d26db730f7ed5) Fix nightly publish oops in Gulpfile ([#​51131](https://github.com/Microsoft/TypeScript/issues/51131)) - [`a7d10f1`](https://github.com/Microsoft/TypeScript/commit/a7d10f15bbd28166b869ae00482214e360891613) Update package-lock.json - [`d0bfd8c`](https://github.com/Microsoft/TypeScript/commit/d0bfd8caed521bfd24fc44960d9936a891744bb7) fix(51072): ts.preProcessFile finds import in template string after conditional expression with template strings ([#​51082](https://github.com/Microsoft/TypeScript/issues/51082)) - [`ad56b5c`](https://github.com/Microsoft/TypeScript/commit/ad56b5ca56b763ab377e07121ecfebb457a2e810) Convert scripts/Gulpfile to checked mjs/cjs so they can run without compilation ([#​50988](https://github.com/Microsoft/TypeScript/issues/50988)) - [`dbeae5d`](https://github.com/Microsoft/TypeScript/commit/dbeae5d943c784661862c52b8e215a2907c31a33) fix(51017): Make lineText in the references response opt-out ([#​51081](https://github.com/Microsoft/TypeScript/issues/51081)) - [`d06a592`](https://github.com/Microsoft/TypeScript/commit/d06a592d02955822a7407b70969fb7a82bc17d59) Properly defer resolution of mapped types with generic `as` clauses ([#​51050](https://github.com/Microsoft/TypeScript/issues/51050)) - [`42b1049`](https://github.com/Microsoft/TypeScript/commit/42b1049aee8c655631cb4f0065de86ec1023d20a) Update package-lock.json - [`5f3e6cc`](https://github.com/Microsoft/TypeScript/commit/5f3e6cc4980d26af5d8a8f463e59b2c3338165c6) Plugin probe location is higher priority than peer node_modules ([#​51079](https://github.com/Microsoft/TypeScript/issues/51079)) \[ [#​34616](https://github.com/Microsoft/TypeScript/issues/34616) ] - [`2648f6a`](https://github.com/Microsoft/TypeScript/commit/2648f6ab09e3176c7da2c07c54066d3a3433a298) Plugins in project were adding up after every config file reload ([#​51087](https://github.com/Microsoft/TypeScript/issues/51087)) - [`c18791c`](https://github.com/Microsoft/TypeScript/commit/c18791ccf165672df3b55f5bdd4a8655f33be26c) Fix incorrect options type to WatchOptions ([#​51064](https://github.com/Microsoft/TypeScript/issues/51064)) - [`b0795e9`](https://github.com/Microsoft/TypeScript/commit/b0795e9c94757a8ee78077d160cde8819a9801ea) Update package-lock.json - [`43c6fd4`](https://github.com/Microsoft/TypeScript/commit/43c6fd4c09464204bc6a6e1c6c1d32fa12270414) Covert some of the config testing to baselines for easy validation ([#​51063](https://github.com/Microsoft/TypeScript/issues/51063)) - [`fc5e72b`](https://github.com/Microsoft/TypeScript/commit/fc5e72b92cb8ea13c5e0f2cfc35d8b2cbfd1fe36) Remove unused defaultWatchFileKind method since useFsEvents is default for tsserver and tsc ([#​51044](https://github.com/Microsoft/TypeScript/issues/51044)) - [`8af9a93`](https://github.com/Microsoft/TypeScript/commit/8af9a936b5240398370887c22cacaff65fee707b) Use typescript.d.ts in APISample tests ([#​51061](https://github.com/Microsoft/TypeScript/issues/51061)) - [`4953316`](https://github.com/Microsoft/TypeScript/commit/49533168dbb4e19f243b9dbdfd6a3aac69f5b3dd) Remove configureLanguageServiceBuild, instrumenter ([#​51048](https://github.com/Microsoft/TypeScript/issues/51048)) - [`9dfffd0`](https://github.com/Microsoft/TypeScript/commit/9dfffd0fbb406d7f2e5e2ca85768624ca388a7bf) Update GitHub Actions ([#​51045](https://github.com/Microsoft/TypeScript/issues/51045)) - [`4635a5c`](https://github.com/Microsoft/TypeScript/commit/4635a5cef9aefa9aa847ef7ce2e6767ddf4f54c2) Update package-lock.json - [`33a34e5`](https://github.com/Microsoft/TypeScript/commit/33a34e5b96bfe086266f4765ab9789a2a02507f9) Adding a JSDoc comment to the es5 type declarations to describe the functionality of Date.now() ([#​50630](https://github.com/Microsoft/TypeScript/issues/50630)) - [`299745c`](https://github.com/Microsoft/TypeScript/commit/299745cb217c2fc061f75b3735f8420d78b8360a) Fix crash in goto-def on `@override` ([#​51016](https://github.com/Microsoft/TypeScript/issues/51016)) - [`7dcf11f`](https://github.com/Microsoft/TypeScript/commit/7dcf11f13985be927886ebea353d282a9b3418e0) fix(50750): Object type literal with string literal property in contextual typing position causes language service error on all literal type references ([#​50757](https://github.com/Microsoft/TypeScript/issues/50757)) - [`5cd49f6`](https://github.com/Microsoft/TypeScript/commit/5cd49f6cbcd2effe9d425dee3a39cb49209bb656) Update package-lock.json - [`8a1b858`](https://github.com/Microsoft/TypeScript/commit/8a1b85880f89c9cff606c5844e8883e5f483c7db) Update package-lock.json - [`96894db`](https://github.com/Microsoft/TypeScript/commit/96894db6cb5b7af6857b4d0c7f70f7d8ac782d51) Include type parameter defaults in contextual typing ([#​50994](https://github.com/Microsoft/TypeScript/issues/50994)) \[ [#​51002](https://github.com/Microsoft/TypeScript/issues/51002) ] - [`0d0a793`](https://github.com/Microsoft/TypeScript/commit/0d0a79371471d627ae298a145f8009b05cbccb72) Allow Unicode extended escapes in ES5 and earlier ([#​50918](https://github.com/Microsoft/TypeScript/issues/50918)) - [`58bae8d`](https://github.com/Microsoft/TypeScript/commit/58bae8db69b275a3efa57b14b486778c55185552) Update package-lock.json - [`0ce72ef`](https://github.com/Microsoft/TypeScript/commit/0ce72ef6c8b39cd2d07e5b0eb3a0c144a7783ad2) Add option to OrganizeImports for removal only ([#​50931](https://github.com/Microsoft/TypeScript/issues/50931)) - [`42f9143`](https://github.com/Microsoft/TypeScript/commit/42f9143e114c5c07f40df83ed07ffeb3cbaf2101) feat: codefix for `for await of` ([#​50623](https://github.com/Microsoft/TypeScript/issues/50623)) - [`ecf50e8`](https://github.com/Microsoft/TypeScript/commit/ecf50e81a7a9cccd9bf5ea7598764082981faab0) Properly compute `SymbolFlags.Optional` for intersected properties ([#​50958](https://github.com/Microsoft/TypeScript/issues/50958)) - [`d1586de`](https://github.com/Microsoft/TypeScript/commit/d1586de0434567b998876929eb8229235b85b350) Fully resolve aliases when checking symbol flags ([#​50853](https://github.com/Microsoft/TypeScript/issues/50853)) - [`45148dd`](https://github.com/Microsoft/TypeScript/commit/45148dd715a7c3776840778b4df41e7e0bd0bf12) Update LKG to 4.8.4 ([#​50987](https://github.com/Microsoft/TypeScript/issues/50987)) - [`9a83f25`](https://github.com/Microsoft/TypeScript/commit/9a83f2551ded0d88a0ba0ec9af260f83eb3568cd) Update package-lock.json - [`865848f`](https://github.com/Microsoft/TypeScript/commit/865848fcfb9e6ce7dd64be563fc09f83d4bc9df5) Fix `<=` and `>` comparisons when compared against prerelease versions ([#​50915](https://github.com/Microsoft/TypeScript/issues/50915)) - [`fbfe934`](https://github.com/Microsoft/TypeScript/commit/fbfe9340a90777dee03b30f736fab44056123be0) Fix comparability between type parameters related by a union constraint ([#​50978](https://github.com/Microsoft/TypeScript/issues/50978)) - [`b09e93d`](https://github.com/Microsoft/TypeScript/commit/b09e93d3f6d3e999df001b53984954974c25b81f) Merge pull request [#​50041](https://github.com/Microsoft/TypeScript/issues/50041) from microsoft/fix/47969 - [`0ac12bb`](https://github.com/Microsoft/TypeScript/commit/0ac12bbe7a410238ca992a42f41816a97f6906f4) Update package-lock.json - [`8192d55`](https://github.com/Microsoft/TypeScript/commit/8192d550496d884263e292488e325ae96893dc78) Pick correct compilerOptions when checking if we can share emitSignatures ([#​50910](https://github.com/Microsoft/TypeScript/issues/50910)) \[ [#​50902](https://github.com/Microsoft/TypeScript/issues/50902) ] - [`16faef1`](https://github.com/Microsoft/TypeScript/commit/16faef1d8d522b66b6c672bdd15b4026e2018a62) During uptodate ness check with buildInfo, check if there are errors explicitly with noEmit ([#​50974](https://github.com/Microsoft/TypeScript/issues/50974)) \[ [#​50959](https://github.com/Microsoft/TypeScript/issues/50959) ] - [`63791f5`](https://github.com/Microsoft/TypeScript/commit/63791f52d4e7a3bf461b974e94abd8cbb6b546c5) Update package-lock.json - [`09368bc`](https://github.com/Microsoft/TypeScript/commit/09368bcbaebd157d1e66859ab6f5b30c2fd6eaff) Handle if project for open file will get recollected because of pending cleanup from closed script info ([#​50908](https://github.com/Microsoft/TypeScript/issues/50908)) \[ [#​50868](https://github.com/Microsoft/TypeScript/issues/50868) ] - [`c81bf4d`](https://github.com/Microsoft/TypeScript/commit/c81bf4d8b0c12410a082d6598fcc24cc721b6e9e) fix(49594): Typescript 4.7.3 bracketed class property compilation error strictPropertyInitialization:true ([#​49619](https://github.com/Microsoft/TypeScript/issues/49619)) - [`bc9cbbe`](https://github.com/Microsoft/TypeScript/commit/bc9cbbef421ae907f7dfd5a84ca69c4f68a8935b) Merge pull request [#​49912](https://github.com/Microsoft/TypeScript/issues/49912) from microsoft/fix/47508 - [`5a10f46`](https://github.com/Microsoft/TypeScript/commit/5a10f46c0028790120cb85c826efa4248707a964) Update package-lock.json - [`8e71f42`](https://github.com/Microsoft/TypeScript/commit/8e71f429c811ac7811533d7b0e02c32bad5a1b47) Fixing pr comments - [`c100c64`](https://github.com/Microsoft/TypeScript/commit/c100c6488db0482dcc1455290f456dece91cac0a) Update package-lock.json - [`2a91107`](https://github.com/Microsoft/TypeScript/commit/2a91107f7548eeb5e32673e76277d27264ea88e2) Update package-lock.json - [`4ab9e76`](https://github.com/Microsoft/TypeScript/commit/4ab9e76fb748b08712f9d0017dd8f0ba74d1859f) Use paths in package.json 'files' array that work with npm 6 and later. ([#​50930](https://github.com/Microsoft/TypeScript/issues/50930)) - [`549b542`](https://github.com/Microsoft/TypeScript/commit/549b5429d4837344e8c99657109bb6538fd2dbb5) Use paths in package.json 'files' array that work with npm 6 and later. - [`7f37d25`](https://github.com/Microsoft/TypeScript/commit/7f37d251fc69da34659e4c60792177e1e9a8e7a6) Update version to 4.9.1-beta and LKG. - [`f16ca7d`](https://github.com/Microsoft/TypeScript/commit/f16ca7dd364e57ee7ce337f987b20dbc1e34941f) Remove 'async' dependency, used only in errorCheck.ts, modernize file ([#​50667](https://github.com/Microsoft/TypeScript/issues/50667)) - [`c6bef3f`](https://github.com/Microsoft/TypeScript/commit/c6bef3f02874bddf6df120aa4f0d130c58478468) LEGO: Merge pull request 50921 - [`6753027`](https://github.com/Microsoft/TypeScript/commit/675302730b8ca525d47c910bf2d3174bd3b66a1b) Update package-lock.json - [`9740bcc`](https://github.com/Microsoft/TypeScript/commit/9740bcc53418e8792a4dbb978059ff5a02b55c91) Pluralized `hasInvalidatedResolution` -> `hasInvalidatedResolutions` ([#​50912](https://github.com/Microsoft/TypeScript/issues/50912)) - [`84c29cd`](https://github.com/Microsoft/TypeScript/commit/84c29cd576fd1facb9b3a353d5342df04acdb184) 🤖 Pick PR [#​50912](https://github.com/Microsoft/TypeScript/issues/50912) (Pluralized \`hasInvalidatedResolutio...) into release-4.9 ([#​50913](https://github.com/Microsoft/TypeScript/issues/50913)) - [`a26f634`](https://github.com/Microsoft/TypeScript/commit/a26f63424de249bb106804dfc9a024bb525de93e) Merge remote-tracking branch 'origin/main' into release-4.9 - [`a455955`](https://github.com/Microsoft/TypeScript/commit/a455955aac85ecc5b2182fe50b83670188955feb) Make hasInvalidatedResolution non internal for program and add it watchApi ([#​50776](https://github.com/Microsoft/TypeScript/issues/50776)) \[ [#​48057](https://github.com/Microsoft/TypeScript/issues/48057) ] - [`645d1cd`](https://github.com/Microsoft/TypeScript/commit/645d1cd7c1ee1d65a87b2183b173611467256a09) Fix assert in addIndirectUser in FAR ([#​50905](https://github.com/Microsoft/TypeScript/issues/50905)) - [`bbec17d`](https://github.com/Microsoft/TypeScript/commit/bbec17d9003246fa00d6bf676bb4ce7c54ff2be4) LEGO: Merge pull request 50900 - [`a9ecc67`](https://github.com/Microsoft/TypeScript/commit/a9ecc675d636c3bbca697bc4881b019e8645a7a6) Update package-lock.json - [`221cf55`](https://github.com/Microsoft/TypeScript/commit/221cf55a21e448bd3fe2cf26a754c9c0dda3dca3) package.json `exports` should have priority over `typesVersions` ([#​50890](https://github.com/Microsoft/TypeScript/issues/50890)) - [`acb8977`](https://github.com/Microsoft/TypeScript/commit/acb89771901f8c81c6046fa7c16361a83388ddab) Remove .github/tsc.json ([#​50664](https://github.com/Microsoft/TypeScript/issues/50664)) - [`7a3de81`](https://github.com/Microsoft/TypeScript/commit/7a3de819bfb93fb27ef7ea8305d2df069866c380) fix(49993): skip the quick fix for an expression with an enum type ([#​50625](https://github.com/Microsoft/TypeScript/issues/50625)) - [`2644f28`](https://github.com/Microsoft/TypeScript/commit/2644f2867734d77a3a3939c55d5cc0a5004df0ed) fix(49200): skip duplicated method declarations ([#​50609](https://github.com/Microsoft/TypeScript/issues/50609)) - [`98652a3`](https://github.com/Microsoft/TypeScript/commit/98652a349a67be718e8e8b5fcf590972eb62a104) Bump version to 4.9.0-beta and LKG. - [`4d91204`](https://github.com/Microsoft/TypeScript/commit/4d91204c9d9f27756785f62fade44d93824d47f4) fix(37030): Expand Selection in function and arrow function skips body block ([#​50711](https://github.com/Microsoft/TypeScript/issues/50711)) - [`e2dd508`](https://github.com/Microsoft/TypeScript/commit/e2dd5084f75ac37a78102d212b67d36595596137) DOM update 2022/09/21 ([#​50884](https://github.com/Microsoft/TypeScript/issues/50884)) - [`1d9ab83`](https://github.com/Microsoft/TypeScript/commit/1d9ab83914a551936ce5ef80340ee65cfd1422ba) fix(50866): emit modifiers from export declarations ([#​50874](https://github.com/Microsoft/TypeScript/issues/50874)) - [`92a1b12`](https://github.com/Microsoft/TypeScript/commit/92a1b124c178e1ff4871b29cb9abc00307e21742) LEGO: Merge pull request 50877 - [`e383db6`](https://github.com/Microsoft/TypeScript/commit/e383db692eb44561333c1bbe353788b337aebc99) Fix debug.ts \__debugKind check ([#​50871](https://github.com/Microsoft/TypeScript/issues/50871)) - [`01054e0`](https://github.com/Microsoft/TypeScript/commit/01054e05ab7638e96515619c4ce62200fdf4e0fd) Consistently add undefined/missing to optional tuple element types ([#​50831](https://github.com/Microsoft/TypeScript/issues/50831)) - [`d90795e`](https://github.com/Microsoft/TypeScript/commit/d90795e799ca8e41aabd6d0852abb585138200ef) Improve escape sequence handling in private names ([#​50856](https://github.com/Microsoft/TypeScript/issues/50856)) - [`938a69a`](https://github.com/Microsoft/TypeScript/commit/938a69a526166ca4e7880fa140fba432936f0fe3) Fix import statement completions followed by interface declaration ([#​50350](https://github.com/Microsoft/TypeScript/issues/50350)) - [`e002159`](https://github.com/Microsoft/TypeScript/commit/e002159ad133a024bae48a2e190e54ad93f6b52d) feat(49962): Disallow comparison against NaN ([#​50626](https://github.com/Microsoft/TypeScript/issues/50626)) - [`80ae43d`](https://github.com/Microsoft/TypeScript/commit/80ae43d2399503a04651e3705823137d36148b00) Fixing spaces - [`abc58bd`](https://github.com/Microsoft/TypeScript/commit/abc58bdabcf536bd5204fbc84fb7f45d75f1a9ad) Fixing baseline errors - [`305f4bd`](https://github.com/Microsoft/TypeScript/commit/305f4bd420bf9edc0239fd3a740aa83fbdeb9ba2) Merge branch 'main' into fix/47969 - [`23746af`](https://github.com/Microsoft/TypeScript/commit/23746af766b53fcc3afecfa16478809a5a36628a) fix(50591): RangeError: Maximum call stack size exceeded ([#​50594](https://github.com/Microsoft/TypeScript/issues/50594)) - [`168186f`](https://github.com/Microsoft/TypeScript/commit/168186f93d23ae59dbea3fea2adba453527343fd) Allow a union property of a private/protected member and an intersection property including that same member ([#​50328](https://github.com/Microsoft/TypeScript/issues/50328)) - [`812ebcf`](https://github.com/Microsoft/TypeScript/commit/812ebcf6e3aebfa72b976a6ae4d65929759a2867) Update package-lock.json - [`16156b1`](https://github.com/Microsoft/TypeScript/commit/16156b1baf26a39ce428423f7106f3ef2b4e98bb) Add rules from eslint's recommended set that triggered good lints ([#​50422](https://github.com/Microsoft/TypeScript/issues/50422)) - [`a11c416`](https://github.com/Microsoft/TypeScript/commit/a11c41621bbbab100a391dd348651c6661549663) Improve checking of `in` operator ([#​50666](https://github.com/Microsoft/TypeScript/issues/50666)) - [`67f2b62`](https://github.com/Microsoft/TypeScript/commit/67f2b62ed2bd1de0299781ba659fa638346bcecf) Gabritto/jsemitfixsilly ([#​50849](https://github.com/Microsoft/TypeScript/issues/50849)) - [`3014dec`](https://github.com/Microsoft/TypeScript/commit/3014dec8878a9ff8d86186a6ac3fd9fad4f3b739) Don't elide imports when transforming JS files ([#​50404](https://github.com/Microsoft/TypeScript/issues/50404)) - [`57c7aa7`](https://github.com/Microsoft/TypeScript/commit/57c7aa755ca3028ff13eb6a37d91775a6fac71e3) LEGO: Merge pull request 50842 - [`48a8e89`](https://github.com/Microsoft/TypeScript/commit/48a8e8953a1e609970dc85e08f99ac499bfe8356) Improve check of whether type query node possibly contains reference to type parameter ([#​50070](https://github.com/Microsoft/TypeScript/issues/50070)) - [`af9ced1`](https://github.com/Microsoft/TypeScript/commit/af9ced11f50c8ac15079d2f88f8961f1e5b62f7f) LEGO: Merge pull request 50825 - [`a8e13f7`](https://github.com/Microsoft/TypeScript/commit/a8e13f7340c5229426072d443fa511bba82a0054) Fixed an issue with destructured bindings from a generic union constraint not being narrowed correctly ([#​50221](https://github.com/Microsoft/TypeScript/issues/50221)) - [`08af0b6`](https://github.com/Microsoft/TypeScript/commit/08af0b6bf0041fef52ca8c1b69d6d4a3db439196) Update package-lock.json - [`0df46e8`](https://github.com/Microsoft/TypeScript/commit/0df46e873322b8eeb271a442eaf034d91ae68770) Fix test around RegExp match vs. exec results ([#​50813](https://github.com/Microsoft/TypeScript/issues/50813)) - [`906510e`](https://github.com/Microsoft/TypeScript/commit/906510e0f30590a4c8fdc892905ccb8dbe512e3d) Fixes for pr - [`2970c5d`](https://github.com/Microsoft/TypeScript/commit/2970c5d1671b2376711cd55594c4597d6da7d8c3) make `RegExpExecArray` always include index 0 ([#​50713](https://github.com/Microsoft/TypeScript/issues/50713)) - [`0507192`](https://github.com/Microsoft/TypeScript/commit/05071920a03f8ea530fe01f79f2537c999ec8b02) Accepting baselines - [`29e50b3`](https://github.com/Microsoft/TypeScript/commit/29e50b314900d22b08f6472918f59ae2b40aba08) Rewording documentation - [`01cae69`](https://github.com/Microsoft/TypeScript/commit/01cae69e3403a831bc5c752b95c8b7547dd95821) fix(50796): omit questionToken in object literal method completions ([#​50802](https://github.com/Microsoft/TypeScript/issues/50802)) - [`3b84f76`](https://github.com/Microsoft/TypeScript/commit/3b84f76fb23bd39d14c7243e5cd495fd207916c0) Fix crash caused by incorrect bounds check (regression in 4.8) ([#​50797](https:/ </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 3am on Monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/sequelize/umzug). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMS41IiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Fixes #17
Closes #36 (by documenting that
toMatchTypeOf
~=toExtend
)Closes #37 (by documenting that helper types are not part of the API surface)
Closes #32
Closes #4
Closes #6 (by documenting that you can't use
.not.toBeCallableWith(...)
)Closes #38
Use generics to give better error messages than "Arguments for the rest parameter 'MISMATCH' were not provided" for most
toEqualTypeOf
cases and manytoMatchTypeOf
cases. This trades off some implementation complexity for better end-user error messages. Essentially, write a special<Expected extends ...>
constraint for each overload of each method, which does some crazy conditional logic, which boil down to:<Expected extends Actual>
fortoEqualTypeOf
(when we aren't in a.not
context)<Expected extends Satisfies<Actual>>
fortoMatchTypeOf
Anyone interested, have a look at the snapshot updates in
errors.test.ts.snap
to see what the real world difference is.Each of these constraints apply only when we know it's going to "fail" - i.e.
Satisfies<...>
is a fairly meaningless helper type that is used to try to show errors at the type-constraint level rather than the...MISMATCH: MismatchArgs<...>
level which won't give good error messages.When using
.not
, the constraint just becomesextends unknown
, and you'll have to squint as before.See also: #14 for the better long-term solution, if the TypeScript team decide to merge the throw types PR.
See also: #13 for a hopefully-complementary improvement to the information on hover, which will improve the cases this doesn't cover.
TODO:
expectTypeOf({a: 1}).toMatchTypeOf({a: 'one'})
case can also be improved.Note: I have publish v0.17.0-1 based on this PR and will hopefully be able to use that version in vitest as a test before merging.