-
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
Update Extends to not distribute over union types #12
Conversation
Did you try |
To be clear, this toMatchTypeOf: {
<Expected>(...MISMATCH: MismatchArgs<Extends<Actual, Expected>, B>): true
<Expected>(expected: Expected, ...MISMATCH: MismatchArgs<Extends<Actual, Expected>, B>): true
} I'm not sure it's desirable to use |
Taking a look at the failing checks now... |
See [this repro](https://www.typescriptlang.org/play?#code/C4TwDgpgBAogHsCA7AJgZwDwBkA0UBKAfFALxRZQQLLoFQD8UwATgK7QBcUAZgIYA2aCAG4AUKNCQoASVQBLZhADGwfiFKxqqTGhZykAcwA+SVgFsARhGZ5Tl60YtyD+4ITEB6D1B9QAevQS4NAAIgrKqupkusz6xnZWzJRatAkOTi5IwAxMbJw8AkKe3r4B4kFSAGJycBAo8Ija2HhEGgDaWAC6yY20bfjdjCzsUFx8giLiktDVtSiyKOEqahqzdQ00OnqGJuaJtnvpzq7uol6+-oFAA) showcasing the problems of union types that get stuck in `Extends`. Note: This only impacts the LHS of the extends.
That should be good to go now. Updated the |
Ahh I think I get it now: without your fix, |
Correct! |
@mmkal Can you please take a look at this PR? It's pretty straightforward and solves a bug where the added tests in this PR do not work without the change in |
@trevorade I ran the tests. I agree this is probably better since it errs on the side of strictness, but it's got me thinking about whether Interestingly this works as expected already: expectTypeOf<{userId: string | number}>().not.toMatchTypeOf<{userId: number}>() I'm still ok with this PR because it's less disruptive than making a breaking change to only support objects. Also, linking this issue since my brain isn't finding |
Awesome. Anything else you'd like here? |
Nope, other than any feedback you might have on what the naming should be. Thank you for the PR! |
I'd probably rename That's easier to intuit about IMO. |
Or |
I propose you write this in #10 so we can talk about it there |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [expect-type](https://togithub.com/mmkal/expect-type) | [`0.14.2` -> `0.16.0`](https://renovatebot.com/diffs/npm/expect-type/0.14.2/0.16.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/expect-type/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/expect-type/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/expect-type/0.14.2/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/expect-type/0.14.2/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>mmkal/expect-type (expect-type)</summary> ### [`v0.16.0`](https://togithub.com/mmkal/expect-type/releases/tag/v0.16.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.15.0...v0.16.0) #### What's Changed - support functions with `this` parameters by [@​mmkal](https://togithub.com/mmkal) and [@​papb](https://togithub.com/papb) in [https://github.com/mmkal/expect-type/pull/15](https://togithub.com/mmkal/expect-type/pull/15) - Prevent the .not modifier from being chained by [@​trevorade](https://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/20](https://togithub.com/mmkal/expect-type/pull/20) - Rewrite `Equal` to use the equality check from `ReadonlyEquivalent` exclusively by [@​trevorade](https://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/21](https://togithub.com/mmkal/expect-type/pull/21) Note that [#​21](https://togithub.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 mmkal/expect-type#21 expectTypeOf<{a: 1} & {b: 2}>().toEqualTypeOf<{a: 1; b: 2}>() ``` **Full Changelog**: mmkal/expect-type@v0.15.0...v16.0.0 ### [`v0.15.0`](https://togithub.com/mmkal/expect-type/releases/tag/v0.15.0) [Compare Source](https://togithub.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://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/12](https://togithub.com/mmkal/expect-type/pull/12) #### New Contributors - [@​trevorade](https://togithub.com/trevorade) made their first contribution in [https://github.com/mmkal/expect-type/pull/12](https://togithub.com/mmkal/expect-type/pull/12) **Full Changelog**: mmkal/expect-type@v0.14.2...v0.15.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] 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/X-oss-byte/Canary-nextjs).
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [expect-type](https://togithub.com/mmkal/expect-type) | [`0.14.2` -> `0.16.0`](https://renovatebot.com/diffs/npm/expect-type/0.14.2/0.16.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/expect-type/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/expect-type/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/expect-type/0.14.2/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/expect-type/0.14.2/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>mmkal/expect-type (expect-type)</summary> ### [`v0.16.0`](https://togithub.com/mmkal/expect-type/releases/tag/v0.16.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.15.0...v0.16.0) #### What's Changed - support functions with `this` parameters by [@​mmkal](https://togithub.com/mmkal) and [@​papb](https://togithub.com/papb) in [https://github.com/mmkal/expect-type/pull/15](https://togithub.com/mmkal/expect-type/pull/15) - Prevent the .not modifier from being chained by [@​trevorade](https://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/20](https://togithub.com/mmkal/expect-type/pull/20) - Rewrite `Equal` to use the equality check from `ReadonlyEquivalent` exclusively by [@​trevorade](https://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/21](https://togithub.com/mmkal/expect-type/pull/21) Note that [#​21](https://togithub.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 mmkal/expect-type#21 expectTypeOf<{a: 1} & {b: 2}>().toEqualTypeOf<{a: 1; b: 2}>() ``` **Full Changelog**: mmkal/expect-type@v0.15.0...v16.0.0 ### [`v0.15.0`](https://togithub.com/mmkal/expect-type/releases/tag/v0.15.0) [Compare Source](https://togithub.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://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/12](https://togithub.com/mmkal/expect-type/pull/12) #### New Contributors - [@​trevorade](https://togithub.com/trevorade) made their first contribution in [https://github.com/mmkal/expect-type/pull/12](https://togithub.com/mmkal/expect-type/pull/12) **Full Changelog**: mmkal/expect-type@v0.14.2...v0.15.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] 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/X-oss-byte/Nextjs).
[![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://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/glob) ([source](https://togithub.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://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/lodash) ([source](https://togithub.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://togithub.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/verror) ([source](https://togithub.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://togithub.com/vitest-dev/vitest/tree/main/packages/ui#readme) ([source](https://togithub.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://togithub.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://togithub.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://togithub.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://togithub.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://togithub.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://togithub.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://togithub.com/vitest-dev/vitest/compare/v0.34.6...v0.34.7) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.34.6...v0.34.7) </details> <details> <summary>sindresorhus/del-cli (del-cli)</summary> ### [`v5.1.0`](https://togithub.com/sindresorhus/del-cli/releases/tag/v5.1.0) [Compare Source](https://togithub.com/sindresorhus/del-cli/compare/v5.0.1...v5.1.0) - Add `--verbose` flag ([#​37](https://togithub.com/sindresorhus/del-cli/issues/37)) [`f32b531`](https://togithub.com/sindresorhus/del-cli/commit/f32b531) ### [`v5.0.1`](https://togithub.com/sindresorhus/del-cli/releases/tag/v5.0.1) [Compare Source](https://togithub.com/sindresorhus/del-cli/compare/v5.0.0...v5.0.1) - Fix Windows compatibility for use with `npx` [`537e5b3`](https://togithub.com/sindresorhus/del-cli/commit/537e5b3) </details> <details> <summary>mmkal/expect-type (expect-type)</summary> ### [`v0.17.3`](https://togithub.com/mmkal/expect-type/releases/tag/v0.17.3) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.17.2...v0.17.3) - docs: why-is-my-assertion-failing [`907b8aa`](https://togithub.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://togithub.com/mmkal/expect-type/releases/tag/v0.17.2) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.17.1...v0.17.2) - Improve tuple errors ([#​40](https://togithub.com/mmkal/expect-type/issues/40)) [`4b38117`](https://togithub.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://togithub.com/mmkal/expect-type/releases/tag/v0.17.1) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.17.0...v0.17.1) - disallow `.not` and `.branded` together [`cf38918`](https://togithub.com/mmkal/expect-type/commit/cf38918) (this was actually documented in the [v0.17.0 release](https://togithub.com/mmkal/expect-type/releases/tag/v0.17.0) but really it was only pushed here) ### [`v0.17.0`](https://togithub.com/mmkal/expect-type/releases/tag/v0.17.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.16.0...v0.17.0) [#​16](https://togithub.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://togithub.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://togithub.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://togithub.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://togithub.com/mmkal) in [https://github.com/mmkal/expect-type/pull/16](https://togithub.com/mmkal/expect-type/pull/16) - expect-type is usually a dev dependency by [@​SerkanSipahi](https://togithub.com/SerkanSipahi) in [https://github.com/mmkal/expect-type/pull/39](https://togithub.com/mmkal/expect-type/pull/39) #### New Contributors - [@​SerkanSipahi](https://togithub.com/SerkanSipahi) made their first contribution in [https://github.com/mmkal/expect-type/pull/39](https://togithub.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://togithub.com/mmkal/expect-type/releases/tag/v0.16.0) [Compare Source](https://togithub.com/mmkal/expect-type/compare/v0.15.0...v0.16.0) #### What's Changed - support functions with `this` parameters by [@​mmkal](https://togithub.com/mmkal) and [@​papb](https://togithub.com/papb) in [https://github.com/mmkal/expect-type/pull/15](https://togithub.com/mmkal/expect-type/pull/15) - Prevent the .not modifier from being chained by [@​trevorade](https://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/20](https://togithub.com/mmkal/expect-type/pull/20) - Rewrite `Equal` to use the equality check from `ReadonlyEquivalent` exclusively by [@​trevorade](https://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/21](https://togithub.com/mmkal/expect-type/pull/21) Note that [#​21](https://togithub.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://togithub.com/mmkal/expect-type/releases/tag/v0.15.0) [Compare Source](https://togithub.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://togithub.com/trevorade) in [https://github.com/mmkal/expect-type/pull/12](https://togithub.com/mmkal/expect-type/pull/12) #### New Contributors - [@​trevorade](https://togithub.com/trevorade) made their first contribution in [https://github.com/mmkal/expect-type/pull/12](https://togithub.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://togithub.com/sinonjs/sinon/blob/HEAD/CHANGES.md#1402) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v14.0.1...v14.0.2) - [`4d70f6e0`](https://togithub.com/sinonjs/sinon/commit/4d70f6e0965b82e387cd632fbe54ed58a8fcf601) Upgrade nise to latest (Morgan Roderick) - [`96a0d756`](https://togithub.com/sinonjs/sinon/commit/96a0d756b553c38154f442785c34c6092d1ac572) Update [@​sinonjs/samsam](https://togithub.com/sinonjs/samsam) to latest (Morgan Roderick) - [`babb4736`](https://togithub.com/sinonjs/sinon/commit/babb4736d7f0080e25dce34fc8ce72879e86792e) Prefer [@​sinonjs/commons](https://togithub.com/sinonjs/commons)[@​2](https://togithub.com/2) (Morgan Roderick) > That makes ES2017 support explicit *Released by Morgan Roderick on 2022-11-07.* ### [`v14.0.1`](https://togithub.com/sinonjs/sinon/blob/HEAD/CHANGES.md#1401) [Compare Source](https://togithub.com/sinonjs/sinon/compare/v14.0.0...v14.0.1) - [`6c4753ef`](https://togithub.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://togithub.com/fatso83) on 2022-10-03.* </details> <details> <summary>microsoft/vscode-node-sqlite3 (sqlite3)</summary> ### [`v5.1.2`](https://togithub.com/microsoft/vscode-node-sqlite3/compare/15e3606959a08cc5d78046cf9de533b3f53d5f63...b2c911808316bf28b532aa756e6841263ac61279) [Compare Source](https://togithub.com/microsoft/vscode-node-sqlite3/compare/15e3606959a08cc5d78046cf9de533b3f53d5f63...b2c911808316bf28b532aa756e6841263ac61279) </details> <details> <summary>Microsoft/TypeScript (typescript)</summary> ### [`v4.9.5`](https://togithub.com/microsoft/TypeScript/releases/tag/v4.9.5): TypeScript 4.9.5 [Compare Source](https://togithub.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://togithub.com/Microsoft/TypeScript/commit/69e88ef5513a81acf69ec78f4af1f927da0d0584) Port ignore deprecations to 4.9 ([#​52419](https://togithub.com/Microsoft/TypeScript/issues/52419)) - [`daf4e81`](https://togithub.com/Microsoft/TypeScript/commit/daf4e817a18def96b70ac34703b158ff0e6d58df) Port timestamp fix to 4.9 ([#​52426](https://togithub.com/Microsoft/TypeScript/issues/52426)) ### [`v4.9.4`](https://togithub.com/microsoft/TypeScript/releases/tag/v4.9.4): TypeScript 4.9.4 [Compare Source](https://togithub.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://togithub.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://togithub.com/Microsoft/TypeScript/commit/e2868216f637e875a74c675845625eb15dcfe9a2) Bump version to 4.9.4 and LKG. - [`eb5419f`](https://togithub.com/Microsoft/TypeScript/commit/eb5419fc8d980859b98553586dfb5f40d811a745) Cherry-pick [#​51704](https://togithub.com/Microsoft/TypeScript/issues/51704) to release 4.9 ([#​51712](https://togithub.com/Microsoft/TypeScript/issues/51712)) - [`b4d382b`](https://togithub.com/Microsoft/TypeScript/commit/b4d382b9b12460adf2da4cc0d1429cf19f8dc8be) Cherry-pick changes for narrowing to tagged literal types. - [`e7a02f4`](https://togithub.com/Microsoft/TypeScript/commit/e7a02f43fce47e1a39259ada5460bcc33c8e98b5) Port of [#​51626](https://togithub.com/Microsoft/TypeScript/issues/51626) and [#​51689](https://togithub.com/Microsoft/TypeScript/issues/51689) to release-4.9 ([#​51627](https://togithub.com/Microsoft/TypeScript/issues/51627)) - [`1727912`](https://togithub.com/Microsoft/TypeScript/commit/1727912f0437a7f367d90040fc4b0b4f3efd017a) Cherry-pick fix around `visitEachChild` to release-4.9. ([#​51544](https://togithub.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://togithub.com/microsoft/TypeScript/releases/tag/v4.9.3): TypeScript 4.9 [Compare Source](https://togithub.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://togithub.com/Microsoft/TypeScript/commit/93bd577458d55cd720b2677705feab5c91eb12ce) Bump version to 4.9.3 and LKG. - [`107f832`](https://togithub.com/Microsoft/TypeScript/commit/107f832b80df2dc97748021cb00af2b6813db75b) Update LKG. - [`31bee56`](https://togithub.com/Microsoft/TypeScript/commit/31bee5682df130a14ffdd5742f994dbe7313dd0e) Cherry-pick PR [#​50977](https://togithub.com/Microsoft/TypeScript/issues/50977) into release-4.9 ([#​51363](https://togithub.com/Microsoft/TypeScript/issues/51363)) \[ [#​50872](https://togithub.com/Microsoft/TypeScript/issues/50872) ] - [`1e2fa7a`](https://togithub.com/Microsoft/TypeScript/commit/1e2fa7ae15f8530910fef8b916ec8a4ed0b59c45) Update version to 4.9.2-rc and LKG. - [`7ab89e5`](https://togithub.com/Microsoft/TypeScript/commit/7ab89e5c6e401d161f31f28a6c555a3ba530910e) Merge remote-tracking branch 'origin/main' into release-4.9 - [`e5cd686`](https://togithub.com/Microsoft/TypeScript/commit/e5cd686defb1a4cbdb36bd012357ba5bed28f371) Update package-lock.json - [`8d40dc1`](https://togithub.com/Microsoft/TypeScript/commit/8d40dc15d1b9945837e7860320fdccfe27c40cad) Update package-lock.json - [`5cfb3a2`](https://togithub.com/Microsoft/TypeScript/commit/5cfb3a2fe344a5350734305193e6cc99516285ca) Only call return() for an abrupt completion in user code ([#​51297](https://togithub.com/Microsoft/TypeScript/issues/51297)) - [`a7a9d15`](https://togithub.com/Microsoft/TypeScript/commit/a7a9d158e817fcb0e94dc1c24e0a401b21be0cc9) Fix for broken baseline in yieldInForInInDownlevelGenerator ([#​51345](https://togithub.com/Microsoft/TypeScript/issues/51345)) - [`7f8426f`](https://togithub.com/Microsoft/TypeScript/commit/7f8426f4df0d0a7dd8b72079dafc3e60164a23b1) fix for-in enumeration containing yield in generator ([#​51295](https://togithub.com/Microsoft/TypeScript/issues/51295)) <details><summary><b>See More</b></summary> - [`3d2b401`](https://togithub.com/Microsoft/TypeScript/commit/3d2b4017eb6b9a2b94bc673291e56ae95e8beddd) Fix assertion functions accessed via wildcard imports ([#​51324](https://togithub.com/Microsoft/TypeScript/issues/51324)) - [`64d0d5a`](https://togithub.com/Microsoft/TypeScript/commit/64d0d5ae140b7b26a09e75114517b418d6bcaa9f) fix(51301): Fixing an unused import at the end of a line removes the newline ([#​51320](https://togithub.com/Microsoft/TypeScript/issues/51320)) - [`754eeb2`](https://togithub.com/Microsoft/TypeScript/commit/754eeb2986bde30d5926e0fa99c87dda9266d01b) Update CodeQL workflow and configuration, fix found bugs ([#​51263](https://togithub.com/Microsoft/TypeScript/issues/51263)) - [`d8aad26`](https://togithub.com/Microsoft/TypeScript/commit/d8aad262006ad2d2c91aa7a0e4449b4b83c57f7b) Update package-lock.json - [`d4f26c8`](https://togithub.com/Microsoft/TypeScript/commit/d4f26c840b1db76c0b25a405c8e73830a2b45cbc) fix(51245): Class with parameter decorator in arrow function causes "convert to default export" refactoring failure ([#​51256](https://togithub.com/Microsoft/TypeScript/issues/51256)) - [`16faf45`](https://togithub.com/Microsoft/TypeScript/commit/16faf45682173ea437a50330feb4785578923d7f) Update package-lock.json - [`8b1ecdb`](https://togithub.com/Microsoft/TypeScript/commit/8b1ecdb701e2a2e19e9f8bcdd6b2beac087eabee) fix(50654): "Move to a new file" breaks the declaration of referenced variable ([#​50681](https://togithub.com/Microsoft/TypeScript/issues/50681)) - [`170a17f`](https://togithub.com/Microsoft/TypeScript/commit/170a17fad57eae619c5ef2b7bdb3ac00d6c32c47) Dom update 2022-10-25 ([#​51300](https://togithub.com/Microsoft/TypeScript/issues/51300)) - [`9c4e14d`](https://togithub.com/Microsoft/TypeScript/commit/9c4e14d75174432f6a4dc5967a09712a6784ab88) Remove "No type information for this code" from baseline ([#​51311](https://togithub.com/Microsoft/TypeScript/issues/51311)) - [`88d25b4`](https://togithub.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://togithub.com/Microsoft/TypeScript/issues/51299)) - [`8bee69a`](https://togithub.com/Microsoft/TypeScript/commit/8bee69acf410d4986cb0cc102b949e2d133d5380) Update package-lock.json - [`702de1e`](https://togithub.com/Microsoft/TypeScript/commit/702de1eeaaef88a189e4d06e5a2aae287853790a) Fix early call to return/throw on generator ([#​51294](https://togithub.com/Microsoft/TypeScript/issues/51294)) - [`2c12b14`](https://togithub.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://togithub.com/Microsoft/TypeScript/issues/51271)) - [`6af270d`](https://togithub.com/Microsoft/TypeScript/commit/6af270dee09d62516f6dc02ec102a745ffebc037) Update package-lock.json - [`2cc4c16`](https://togithub.com/Microsoft/TypeScript/commit/2cc4c16a26672a7ba6c97ba16309fcf334db7cae) Update package-lock.json - [`6093491`](https://togithub.com/Microsoft/TypeScript/commit/60934915d9ccc4ca9c0fb2cd060d7ec81601942b) Fix apparent typo in getStringMappingType ([#​51248](https://togithub.com/Microsoft/TypeScript/issues/51248)) - [`61c2609`](https://togithub.com/Microsoft/TypeScript/commit/61c26096e3373719ece686b84c698423890e9a5f) Update package-lock.json - [`ef69116`](https://togithub.com/Microsoft/TypeScript/commit/ef69116c41cb6805f89e6592eacb0ccb7f02207d) Generate shortest `rootDirs` module specifier instead of first possible ([#​51244](https://togithub.com/Microsoft/TypeScript/issues/51244)) - [`bbb42f4`](https://togithub.com/Microsoft/TypeScript/commit/bbb42f453dc684e03d977c5b70391124d57543a9) Fix typo in canWatchDirectoryOrFile found by CodeQL ([#​51262](https://togithub.com/Microsoft/TypeScript/issues/51262)) - [`a56b254`](https://togithub.com/Microsoft/TypeScript/commit/a56b254ad3c52b598bc5d44f83f3d0a1cf806068) Include 'this' type parameter in isRelatedTo fast path ([#​51230](https://togithub.com/Microsoft/TypeScript/issues/51230)) - [`3abd351`](https://togithub.com/Microsoft/TypeScript/commit/3abd351c0eea55758f27ee5558a4a1525b77f45b) Fix super property transform in async arrow in method ([#​51240](https://togithub.com/Microsoft/TypeScript/issues/51240)) - [`eed0511`](https://togithub.com/Microsoft/TypeScript/commit/eed05112180e0d94f78aa02d676d49468f15dc31) Update package-lock.json - [`2625c1f`](https://togithub.com/Microsoft/TypeScript/commit/2625c1feae25aede35465ca835440fc57bf13d52) Make the init config category order predictable ([#​51247](https://togithub.com/Microsoft/TypeScript/issues/51247)) - [`1ca99b3`](https://togithub.com/Microsoft/TypeScript/commit/1ca99b34029dafad2c18af7bdc0711f4abf7e522) fix(50551): Destructuring assignment with var bypasses "variable is used before being assigned" check (2454) ([#​50560](https://togithub.com/Microsoft/TypeScript/issues/50560)) - [`3f28fa1`](https://togithub.com/Microsoft/TypeScript/commit/3f28fa12dfecb8dfd66ce4684bf26f64e1f092f1) Update package-lock.json - [`906ebe4`](https://togithub.com/Microsoft/TypeScript/commit/906ebe49334a3a9c2dbd73cd3c902898bc712b66) Revert structuredTypeRelatedTo change and fix isUnitLikeType ([#​51076](https://togithub.com/Microsoft/TypeScript/issues/51076)) - [`8ac4652`](https://togithub.com/Microsoft/TypeScript/commit/8ac465239f52de1da3ada8cdc4c3f107f4d62e45) change type ([#​51231](https://togithub.com/Microsoft/TypeScript/issues/51231)) - [`245a02c`](https://togithub.com/Microsoft/TypeScript/commit/245a02cbed7ad50a21289730159abc8d19a66f40) fix(51222): Go-to-definition on return statements should jump to the containing function declaration ([#​51227](https://togithub.com/Microsoft/TypeScript/issues/51227)) - [`2dff34e`](https://togithub.com/Microsoft/TypeScript/commit/2dff34e8c4a91c0005ca9ccfb7e045e225b6f2e4) markAliasReferenced should include ExportValue as well ([#​51219](https://togithub.com/Microsoft/TypeScript/issues/51219)) - [`5ef2634`](https://togithub.com/Microsoft/TypeScript/commit/5ef2634f3df138323383c7f2e5a05163a924ee86) Update package-lock.json - [`d0f0e35`](https://togithub.com/Microsoft/TypeScript/commit/d0f0e35c88ae017fc4c1213eb2f83303ee22ebde) Remove old tslint comments ([#​51220](https://togithub.com/Microsoft/TypeScript/issues/51220)) - [`85d405a`](https://togithub.com/Microsoft/TypeScript/commit/85d405a1d74c0730a9d8d6307b26e8d6f3f75421) Fixed a false positive "await has no effect on the type" diagnostic with mixed generic union ([#​50833](https://togithub.com/Microsoft/TypeScript/issues/50833)) - [`1f8959f`](https://togithub.com/Microsoft/TypeScript/commit/1f8959f5dc04b2b2c2fc8a7dc53b6ac761e1f754) fix: avoid downleveled dynamic import closing over specifier expression ([#​49663](https://togithub.com/Microsoft/TypeScript/issues/49663)) - [`11066b2`](https://togithub.com/Microsoft/TypeScript/commit/11066b264f5d30fb5ac1f6c2f3a155c0190e75d2) Rename internal functions to `narrowTypeBySwitchOnTypeOf` and `narrowTypeByInKeyword` ([#​51215](https://togithub.com/Microsoft/TypeScript/issues/51215)) - [`4c9afe8`](https://togithub.com/Microsoft/TypeScript/commit/4c9afe8812fcdb4658472ccbced4a5cd4bae70ea) Update package-lock.json - [`f25bcb7`](https://togithub.com/Microsoft/TypeScript/commit/f25bcb7c27d78ce89e9c9356d27058cf86dbfb5c) fix(49196): add jsdoc snippet for interface member functions ([#​51135](https://togithub.com/Microsoft/TypeScript/issues/51135)) - [`7406ee9`](https://togithub.com/Microsoft/TypeScript/commit/7406ee9c145cd7d6117391818d5a1eca2d66ca8f) fix(51170): Completing an unimplemented property overwrites rest of line ([#​51175](https://togithub.com/Microsoft/TypeScript/issues/51175)) - [`a1d82fc`](https://togithub.com/Microsoft/TypeScript/commit/a1d82fc9dcced6ca6bde6e21c385d152d083679f) Remove some unnecessary code discovered by rollup ([#​51204](https://togithub.com/Microsoft/TypeScript/issues/51204)) - [`0481773`](https://togithub.com/Microsoft/TypeScript/commit/0481773a27fc6a0132c34502fd2a3b0c73cf63a3) LEGO: Merge pull request 51200 - [`98c19cb`](https://togithub.com/Microsoft/TypeScript/commit/98c19cbbbe83c2ae3c89a4e08317a4b9ccbcb206) LEGO: Merge pull request 51190 - [`13c9b05`](https://togithub.com/Microsoft/TypeScript/commit/13c9b05384544262363f3fd8b942b36aeb84fc61) Update package-lock.json - [`673475e`](https://togithub.com/Microsoft/TypeScript/commit/673475e1c5e582f2fd0bf8d89e33c7708607c8d8) Update package-lock.json - [`f6cf510`](https://togithub.com/Microsoft/TypeScript/commit/f6cf51053e024714dd6b8463fe6f8e7e33461e6b) Add more tracing to node16/nodenext resolution ([#​51168](https://togithub.com/Microsoft/TypeScript/issues/51168)) - [`83c5581`](https://togithub.com/Microsoft/TypeScript/commit/83c5581588f660247bd9648bafe67b49de060a55) Update package-lock.json - [`be5f0fe`](https://togithub.com/Microsoft/TypeScript/commit/be5f0fe5acfed5146514ebe7c1b65529def8e490) Add an extra regression test for awaited unresolvable recursive union ([#​51167](https://togithub.com/Microsoft/TypeScript/issues/51167)) - [`2cb7e77`](https://togithub.com/Microsoft/TypeScript/commit/2cb7e779d70d57ef0d46dd3f768e646b8bbe783a) fix(50416): correctly names disabled export refactors ([#​50663](https://togithub.com/Microsoft/TypeScript/issues/50663)) \[ [#​50416](https://togithub.com/Microsoft/TypeScript/issues/50416) ] - [`2bcfed0`](https://togithub.com/Microsoft/TypeScript/commit/2bcfed01f3458996e71ce37af43e3495cb7e4950) feat(37440): Provide a quick-fix for non-exported types ([#​51038](https://togithub.com/Microsoft/TypeScript/issues/51038)) - [`a24201c`](https://togithub.com/Microsoft/TypeScript/commit/a24201c8ef6f82b5729ab677b7a1a1d6d745fcb8) Remove VSDevMode.ps1 and createPlaygroundBuild ([#​51166](https://togithub.com/Microsoft/TypeScript/issues/51166)) - [`2da62a7`](https://togithub.com/Microsoft/TypeScript/commit/2da62a784bbba237b8239e84c8629cfafb0f595e) fix(51112): omit parameter names that precede the type ([#​51142](https://togithub.com/Microsoft/TypeScript/issues/51142)) - [`cf1b6b7`](https://togithub.com/Microsoft/TypeScript/commit/cf1b6b73330eab2dd484d71cbdb662a83b3c726f) feat(51163): show QF to fill in the missing properties for the mapped type. ([#​51165](https://togithub.com/Microsoft/TypeScript/issues/51165)) - [`bdcc240`](https://togithub.com/Microsoft/TypeScript/commit/bdcc240d68245e4be865b385bd6a8fd8fa546f56) Remove bug-causing carve-out in conditional type instantiation that hopefully is no longer required ([#​51151](https://togithub.com/Microsoft/TypeScript/issues/51151)) - [`37317a2`](https://togithub.com/Microsoft/TypeScript/commit/37317a208f34c141b64e26d0e92b3aed346e531f) Check nested weak types in intersections on target side of relation ([#​51140](https://togithub.com/Microsoft/TypeScript/issues/51140)) - [`9f49f9c`](https://togithub.com/Microsoft/TypeScript/commit/9f49f9ccb05a7bb56b8ca84b8036a3ad4e0e7c2b) Update package-lock.json - [`4f54e7e`](https://togithub.com/Microsoft/TypeScript/commit/4f54e7e947298162d29f3104265e74dcfbc90d82) Fix isExhaustiveSwitchStatement to better handle circularities ([#​51095](https://togithub.com/Microsoft/TypeScript/issues/51095)) - [`503604c`](https://togithub.com/Microsoft/TypeScript/commit/503604c884bd0557c851b11b699ef98cdb65b93b) Overloads shouldn't gain [@​deprecated](https://togithub.com/deprecated) tags of other overloads in quick info ([#​50904](https://togithub.com/Microsoft/TypeScript/issues/50904)) - [`e14a229`](https://togithub.com/Microsoft/TypeScript/commit/e14a2298c5add93816c6f487bcfc5ac72e3a4c59) Update package-lock.json - [`67256e5`](https://togithub.com/Microsoft/TypeScript/commit/67256e50c41aa9178a60c52de8416477f070b190) Remove unused declarations array in extractSymbol's TargetRange ([#​51091](https://togithub.com/Microsoft/TypeScript/issues/51091)) - [`9c87ded`](https://togithub.com/Microsoft/TypeScript/commit/9c87ded2b3fc4ba4a9a7656e9be39d5e404e6ab6) fix(51100): ensure tsserver shuts down when parent process is killed ([#​51107](https://togithub.com/Microsoft/TypeScript/issues/51107)) - [`c01ae01`](https://togithub.com/Microsoft/TypeScript/commit/c01ae01fac37268bac3362fb6e6d26db730f7ed5) Fix nightly publish oops in Gulpfile ([#​51131](https://togithub.com/Microsoft/TypeScript/issues/51131)) - [`a7d10f1`](https://togithub.com/Microsoft/TypeScript/commit/a7d10f15bbd28166b869ae00482214e360891613) Update package-lock.json - [`d0bfd8c`](https://togithub.com/Microsoft/TypeScript/commit/d0bfd8caed521bfd24fc44960d9936a891744bb7) fix(51072): ts.preProcessFile finds import in template string after conditional expression with template strings ([#​51082](https://togithub.com/Microsoft/TypeScript/issues/51082)) - [`ad56b5c`](https://togithub.com/Microsoft/TypeScript/commit/ad56b5ca56b763ab377e07121ecfebb457a2e810) Convert scripts/Gulpfile to checked mjs/cjs so they can run without compilation ([#​50988](https://togithub.com/Microsoft/TypeScript/issues/50988)) - [`dbeae5d`](https://togithub.com/Microsoft/TypeScript/commit/dbeae5d943c784661862c52b8e215a2907c31a33) fix(51017): Make lineText in the references response opt-out ([#​51081](https://togithub.com/Microsoft/TypeScript/issues/51081)) - [`d06a592`](https://togithub.com/Microsoft/TypeScript/commit/d06a592d02955822a7407b70969fb7a82bc17d59) Properly defer resolution of mapped types with generic `as` clauses ([#​51050](https://togithub.com/Microsoft/TypeScript/issues/51050)) - [`42b1049`](https://togithub.com/Microsoft/TypeScript/commit/42b1049aee8c655631cb4f0065de86ec1023d20a) Update package-lock.json - [`5f3e6cc`](https://togithub.com/Microsoft/TypeScript/commit/5f3e6cc4980d26af5d8a8f463e59b2c3338165c6) Plugin probe location is higher priority than peer node_modules ([#​51079](https://togithub.com/Microsoft/TypeScript/issues/51079)) \[ [#​34616](https://togithub.com/Microsoft/TypeScript/issues/34616) ] - [`2648f6a`](https://togithub.com/Microsoft/TypeScript/commit/2648f6ab09e3176c7da2c07c54066d3a3433a298) Plugins in project were adding up after every config file reload ([#​51087](https://togithub.com/Microsoft/TypeScript/issues/51087)) - [`c18791c`](https://togithub.com/Microsoft/TypeScript/commit/c18791ccf165672df3b55f5bdd4a8655f33be26c) Fix incorrect options type to WatchOptions ([#​51064](https://togithub.com/Microsoft/TypeScript/issues/51064)) - [`b0795e9`](https://togithub.com/Microsoft/TypeScript/commit/b0795e9c94757a8ee78077d160cde8819a9801ea) Update package-lock.json - [`43c6fd4`](https://togithub.com/Microsoft/TypeScript/commit/43c6fd4c09464204bc6a6e1c6c1d32fa12270414) Covert some of the config testing to baselines for easy validation ([#​51063](https://togithub.com/Microsoft/TypeScript/issues/51063)) - [`fc5e72b`](https://togithub.com/Microsoft/TypeScript/commit/fc5e72b92cb8ea13c5e0f2cfc35d8b2cbfd1fe36) Remove unused defaultWatchFileKind method since useFsEvents is default for tsserver and tsc ([#​51044](https://togithub.com/Microsoft/TypeScript/issues/51044)) - [`8af9a93`](https://togithub.com/Microsoft/TypeScript/commit/8af9a936b5240398370887c22cacaff65fee707b) Use typescript.d.ts in APISample tests ([#​51061](https://togithub.com/Microsoft/TypeScript/issues/51061)) - [`4953316`](https://togithub.com/Microsoft/TypeScript/commit/49533168dbb4e19f243b9dbdfd6a3aac69f5b3dd) Remove configureLanguageServiceBuild, instrumenter ([#​51048](https://togithub.com/Microsoft/TypeScript/issues/51048)) - [`9dfffd0`](https://togithub.com/Microsoft/TypeScript/commit/9dfffd0fbb406d7f2e5e2ca85768624ca388a7bf) Update GitHub Actions ([#​51045](https://togithub.com/Microsoft/TypeScript/issues/51045)) - [`4635a5c`](https://togithub.com/Microsoft/TypeScript/commit/4635a5cef9aefa9aa847ef7ce2e6767ddf4f54c2) Update package-lock.json - [`33a34e5`](https://togithub.com/Microsoft/TypeScript/commit/33a34e5b96bfe086266f4765ab9789a2a02507f9) Adding a JSDoc comment to the es5 type declarations to describe the functionality of Date.now() ([#​50630](https://togithub.com/Microsoft/TypeScript/issues/50630)) - [`299745c`](https://togithub.com/Microsoft/TypeScript/commit/299745cb217c2fc061f75b3735f8420d78b8360a) Fix crash in goto-def on `@override` ([#​51016](https://togithub.com/Microsoft/TypeScript/issues/51016)) - [`7dcf11f`](https://togithub.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://togithub.com/Microsoft/TypeScript/issues/50757)) - [`5cd49f6`](https://togithub.com/Microsoft/TypeScript/commit/5cd49f6cbcd2effe9d425dee3a39cb49209bb656) Update package-lock.json - [`8a1b858`](https://togithub.com/Microsoft/TypeScript/commit/8a1b85880f89c9cff606c5844e8883e5f483c7db) Update package-lock.json - [`96894db`](https://togithub.com/Microsoft/TypeScript/commit/96894db6cb5b7af6857b4d0c7f70f7d8ac782d51) Include type parameter defaults in contextual typing ([#​50994](https://togithub.com/Microsoft/TypeScript/issues/50994)) \[ [#​51002](https://togithub.com/Microsoft/TypeScript/issues/51002) ] - [`0d0a793`](https://togithub.com/Microsoft/TypeScript/commit/0d0a79371471d627ae298a145f8009b05cbccb72) Allow Unicode extended escapes in ES5 and earlier ([#​50918](https://togithub.com/Microsoft/TypeScript/issues/50918)) - [`58bae8d`](https://togithub.com/Microsoft/TypeScript/commit/58bae8db69b275a3efa57b14b486778c55185552) Update package-lock.json - [`0ce72ef`](https://togithub.com/Microsoft/TypeScript/commit/0ce72ef6c8b39cd2d07e5b0eb3a0c144a7783ad2) Add option to OrganizeImports for removal only ([#​50931](https://togithub.com/Microsoft/TypeScript/issues/50931)) - [`42f9143`](https://togithub.com/Microsoft/TypeScript/commit/42f9143e114c5c07f40df83ed07ffeb3cbaf2101) feat: codefix for `for await of` ([#​50623](https://togithub.com/Microsoft/TypeScript/issues/50623)) - [`ecf50e8`](https://togithub.com/Microsoft/TypeScript/commit/ecf50e81a7a9cccd9bf5ea7598764082981faab0) Properly compute `SymbolFlags.Optional` for intersected properties ([#​50958](https://togithub.com/Microsoft/TypeScript/issues/50958)) - [`d1586de`](https://togithub.com/Microsoft/TypeScript/commit/d1586de0434567b998876929eb8229235b85b350) Fully resolve aliases when checking symbol flags ([#​50853](https://togithub.com/Microsoft/TypeScript/issues/50853)) - [`45148dd`](https://togithub.com/Microsoft/TypeScript/commit/45148dd715a7c3776840778b4df41e7e0bd0bf12) Update LKG to 4.8.4 ([#​50987](https://togithub.com/Microsoft/TypeScript/issues/50987)) - [`9a83f25`](https://togithub.com/Microsoft/TypeScript/commit/9a83f2551ded0d88a0ba0ec9af260f83eb3568cd) Update package-lock.json - [`865848f`](https://togithub.com/Microsoft/TypeScript/commit/865848fcfb9e6ce7dd64be563fc09f83d4bc9df5) Fix `<=` and `>` comparisons when compared against prerelease versions ([#​50915](https://togithub.com/Microsoft/TypeScript/issues/50915)) - [`fbfe934`](https://togithub.com/Microsoft/TypeScript/commit/fbfe9340a90777dee03b30f736fab44056123be0) Fix comparability between type parameters related by a union constraint ([#​50978](https://togithub.com/Microsoft/TypeScript/issues/50978)) - [`b09e93d`](https://togithub.com/Microsoft/TypeScript/commit/b09e93d3f6d3e999df001b53984954974c25b81f) Merge pull request [#​50041](https://togithub.com/Microsoft/TypeScript/issues/50041) from microsoft/fix/47969 - [`0ac12bb`](https://togithub.com/Microsoft/TypeScript/commit/0ac12bbe7a410238ca992a42f41816a97f6906f4) Update package-lock.json - [`8192d55`](https://togithub.com/Microsoft/TypeScript/commit/8192d550496d884263e292488e325ae96893dc78) Pick correct compilerOptions when checking if we can share emitSignatures ([#​50910](https://togithub.com/Microsoft/TypeScript/issues/50910)) \[ [#​50902](https://togithub.com/Microsoft/TypeScript/issues/50902) ] - [`16faef1`](https://togithub.com/Microsoft/TypeScript/commit/16faef1d8d522b66b6c672bdd15b4026e2018a62) During uptodate ness check with buildInfo, check if there are errors explicitly with noEmit ([#​50974](https://togithub.com/Microsoft/TypeScript/issues/50974)) \[ [#​50959](https://togithub.com/Microsoft/TypeScript/issues/50959) ] - [`63791f5`](https://togithub.com/Microsoft/TypeScript/commit/63791f52d4e7a3bf461b974e94abd8cbb6b546c5) Update package-lock.json - [`09368bc`](https://togithub.com/Microsoft/TypeScript/commit/09368bcbaebd157d1e66859ab6f5b30c2fd6eaff) Handle if project for open file will get recollected because of pending cleanup from closed script info ([#​50908](https://togithub.com/Microsoft/TypeScript/issues/50908)) \[ [#​50868](https://togithub.com/Microsoft/TypeScript/issues/50868) ] - [`c81bf4d`](https://togithub.com/Microsoft/TypeScript/commit/c81bf4d8b0c12410a082d6598fcc24cc721b6e9e) fix(49594): Typescript 4.7.3 bracketed class property compilation error strictPropertyInitialization:true ([#​49619](https://togithub.com/Microsoft/TypeScript/issues/49619)) - [`bc9cbbe`](https://togithub.com/Microsoft/TypeScript/commit/bc9cbbef421ae907f7dfd5a84ca69c4f68a8935b) Merge pull request [#​49912](https://togithub.com/Microsoft/TypeScript/issues/49912) from microsoft/fix/47508 - [`5a10f46`](https://togithub.com/Microsoft/TypeScript/commit/5a10f46c0028790120cb85c826efa4248707a964) Update package-lock.json - [`8e71f42`](https://togithub.com/Microsoft/TypeScript/commit/8e71f429c811ac7811533d7b0e02c32bad5a1b47) Fixing pr comments - [`c100c64`](https://togithub.com/Microsoft/TypeScript/commit/c100c6488db0482dcc1455290f456dece91cac0a) Update package-lock.json - [`2a91107`](https://togithub.com/Microsoft/TypeScript/commit/2a91107f7548eeb5e32673e76277d27264ea88e2) Update package-lock.json - [`4ab9e76`](https://togithub.com/Microsoft/TypeScript/commit/4ab9e76fb748b08712f9d0017dd8f0ba74d1859f) Use paths in package.json 'files' array that work with npm 6 and later. ([#​50930](https://togithub.com/Microsoft/TypeScript/issues/50930)) - [`549b542`](https://togithub.com/Microsoft/TypeScript/commit/549b5429d4837344e8c99657109bb6538fd2dbb5) Use paths in package.json 'files' array that work with npm 6 and later. - [`7f37d25`](https://togithub.com/Microsoft/TypeScript/commit/7f37d251fc69da34659e4c60792177e1e9a8e7a6) Update version to 4.9.1-beta and LKG. - [`f16ca7d`](https://togithub.com/Microsoft/TypeScript/commit/f16ca7dd364e57ee7ce337f987b20dbc1e34941f) Remove 'async' dependency, used only in errorCheck.ts, modernize file ([#​50667](https://togithub.com/Microsoft/TypeScript/issues/50667)) - [`c6bef3f`](https://togithub.com/Microsoft/TypeScript/commit/c6bef3f02874bddf6df120aa4f0d130c58478468) LEGO: Merge pull request 50921 - [`6753027`](https://togithub.com/Microsoft/TypeScript/commit/675302730b8ca525d47c910bf2d3174bd3b66a1b) Update package-lock.json - [`9740bcc`](https://togithub.com/Microsoft/TypeScript/commit/9740bcc53418e8792a4dbb978059ff5a02b55c91) Pluralized `hasInvalidatedResolution` -> `hasInvalidatedResolutions` ([#​50912](https://togithub.com/Microsoft/TypeScript/issues/50912)) - [`84c29cd`](https://togithub.com/Microsoft/TypeScript/commit/84c29cd576fd1facb9b3a353d5342df04acdb184) 🤖 Pick PR [#​50912](https://togithub.com/Microsoft/TypeScript/issues/50912) (Pluralized \`hasInvalidatedResolutio...) into release-4.9 ([#​50913](https://togithub.com/Microsoft/TypeScript/issues/50913)) - [`a26f634`](https://togithub.com/Microsoft/TypeScript/commit/a26f63424de249bb106804dfc9a024bb525de93e) Merge remote-tracking branch 'origin/main' into release-4.9 - [`a455955`](https://togithub.com/Microsoft/TypeScript/commit/a455955aac85ecc5b2182fe50b83670188955feb) Make hasInvalidatedResolution non internal for program and add it watchApi ([#​50776](https://togithub.com/Microsoft/TypeScript/issues/50776)) \[ [#​48057](https://togithub.com/Microsoft/TypeScript/issues/48057) ] - [`645d1cd`](https://togithub.com/Microsoft/TypeScript/commit/645d1cd7c1ee1d65a87b2183b173611467256a09) Fix assert in addIndirectUser in FAR ([#​50905](https://togithub.com/Microsoft/TypeScript/issues/50905)) - [`bbec17d`](https://togithub.com/Microsoft/TypeScript/commit/bbec17d9003246fa00d6bf676bb4ce7c54ff2be4) LEGO: Merge pull request 50900 - [`a9ecc67`](https://togithub.com/Microsoft/TypeScript/commit/a9ecc675d636c3bbca697bc4881b019e8645a7a6) Update package-lock.json - [`221cf55`](https://togithub.com/Microsoft/TypeScript/commit/221cf55a21e448bd3fe2cf26a754c9c0dda3dca3) package.json `exports` should have priority over `typesVersions` ([#​50890](https://togithub.com/Microsoft/TypeScript/issues/50890)) - [`acb8977`](https://togithub.com/Microsoft/TypeScript/commit/acb89771901f8c81c6046fa7c16361a83388ddab) Remove .github/tsc.json ([#​50664](https://togithub.com/Microsoft/TypeScript/issues/50664)) - [`7a3de81`](https://togithub.com/Microsoft/TypeScript/commit/7a3de819bfb93fb27ef7ea8305d2df069866c380) fix(49993): skip the quick fix for an expression with an enum type ([#​50625](https://togithub.com/Microsoft/TypeScript/issues/50625)) - [`2644f28`](https://togithub.com/Microsoft/TypeScript/commit/2644f2867734d77a3a3939c55d5cc0a5004df0ed) fix(49200): skip duplicated method declarations ([#​50609](https://togithub.com/Microsoft/TypeScript/issues/50609)) - [`98652a3`](https://togithub.com/Microsoft/TypeScript/commit/98652a349a67be718e8e8b5fcf590972eb62a104) Bump version to 4.9.0-beta and LKG. - [`4d91204`](https://togithub.com/Microsoft/TypeScript/commit/4d91204c9d9f27756785f62fade44d93824d47f4) fix(37030): Expand Selection in function and arrow function skips body block ([#​50711](https://togithub.com/Microsoft/TypeScript/issues/50711)) - [`e2dd508`](https://togithub.com/Microsoft/TypeScript/commit/e2dd5084f75ac37a78102d212b67d36595596137) DOM update 2022/09/21 ([#​50884](https://togithub.com/Microsoft/TypeScript/issues/50884)) - [`1d9ab83`](https://togithub.com/Microsoft/TypeScript/commit/1d9ab83914a551936ce5ef80340ee65cfd1422ba) fix(50866): emit modifiers from export declarations ([#​50874](https://togithub.com/Microsoft/TypeScript/issues/50874)) - [`92a1b12`](https://togithub.com/Microsoft/TypeScript/commit/92a1b124c178e1ff4871b29cb9abc00307e21742) LEGO: Merge pull request 50877 - [`e383db6`](https://togithub.com/Microsoft/TypeScript/commit/e383db692eb44561333c1bbe353788b337aebc99) Fix debug.ts \__debugKind check ([#​50871](https://togithub.com/Microsoft/TypeScript/issues/50871)) - [`01054e0`](https://togithub.com/Microsoft/TypeScript/commit/01054e05ab7638e96515619c4ce62200fdf4e0fd) Consistently add undefined/missing to optional tuple element types ([#​50831](https://togithub.com/Microsoft/TypeScript/issues/50831)) - [`d90795e`](https://togithub.com/Microsoft/TypeScript/commit/d90795e799ca8e41aabd6d0852abb585138200ef) Improve escape sequence handling in private names ([#​50856](https://togithub.com/Microsoft/TypeScript/issues/50856)) - [`938a69a`](https://togithub.com/Microsoft/TypeScript/commit/938a69a526166ca4e7880fa140fba432936f0fe3) Fix import statement completions followed by interface declaration ([#​50350](https://togithub.com/Microsoft/TypeScript/issues/50350)) - [`e002159`](https://togithub.com/Microsoft/TypeScript/commit/e002159ad133a024bae48a2e190e54ad93f6b52d) feat(49962): Disallow comparison against NaN ([#​50626](https://togithub.com/Microsoft/TypeScript/issues/50626)) - [`80ae43d`](https://togithub.com/Microsoft/TypeScript/commit/80ae43d2399503a04651e3705823137d36148b00) Fixing spaces - [`abc58bd`](https://togithub.com/Microsoft/TypeScript/commit/abc58bdabcf536bd5204fbc84fb7f45d75f1a9ad) Fixing baseline errors - [`305f4bd`](https://togithub.com/Microsoft/TypeScript/commit/305f4bd420bf9edc0239fd3a740aa83fbdeb9ba2) Merge branch 'main' into fix/47969 - [`23746af`](https://togithub.com/Microsoft/TypeScript/commit/23746af766b53fcc3afecfa16478809a5a36628a) fix(50591): RangeError: Maximum call stack size exceeded ([#​50594](https://togithub.com/Microsoft/TypeScript/issues/50594)) - [`168186f`](https://togithub.com/Microsoft/TypeScript/commit/168186f93d23ae59dbea3fea2adba453527343fd) Allow a union property of a private/protected member and an intersection property including that same member ([#​50328](https://togithub.com/Microsoft/TypeScript/issues/50328)) - [`812ebcf`](https://togithub.com/Microsoft/TypeScript/commit/812ebcf6e3aebfa72b976a6ae4d65929759a2867) Update package-lock.json - [`16156b1`](https://togithub.com/Microsoft/TypeScript/commit/16156b1baf26a39ce428423f7106f3ef2b4e98bb) Add rules from eslint's recommended set that triggered good lints ([#​50422](https://togithub.com/Microsoft/TypeScript/issues/50422)) - [`a11c416`](https://togithub.com/Microsoft/TypeScript/commit/a11c41621bbbab100a391dd348651c6661549663) Improve checking of `in` operator ([#​50666](https://togithub.com/Microsoft/TypeScript/issues/50666)) - [`67f2b62`](https://togithub.com/Microsoft/TypeScript/commit/67f2b62ed2bd1de0299781ba659fa638346bcecf) Gabritto/jsemitfixsilly ([#​50849](https://togithub.com/Microsoft/TypeScript/issues/50849)) - [`3014dec`](https://togithub.com/Microsoft/TypeScript/commit/3014dec8878a9ff8d86186a6ac3fd9fad4f3b739) Don't elide imports when transforming JS files ([#​50404](https://togithub.com/Microsoft/TypeScript/issues/50404)) - [`57c7aa7`](https://togithub.com/Microsoft/TypeScript/commit/57c7aa755ca3028ff13eb6a37d91775a6fac71e3) LEGO: Merge pull request 50842 - [`48a8e89`](https://togithub.com/Microsoft/TypeScript/commit/48a8e8953a1e609970dc85e08f99ac499bfe8356) Improve check of whether type query node possibly contains reference to type parameter ([#​50070](https://togithub.com/Microsoft/TypeScript/issues/50070)) - [`af9ced1`](https://togithub.com/Microsoft/TypeScript/commit/af9ced11f50c8ac15079d2f88f8961f1e5b62f7f) LEGO: Merge pull request 50825 - [`a8e13f7`](https://togithub.com/Microsoft/TypeScript/commit/a8e13f7340c5229426072d443fa511bba82a0054) Fixed an issue with destructured bindings from a generic union constraint not being narrowed correctly ([#​50221](https://togithub.com/Microsoft/TypeScript/issues/50221)) - [`08af0b6`](https://togithub.com/Microsoft/TypeScript/commit/08af0b6bf0041fef52ca8c1b69d6d4a3db439196) Update package-lock.json - [`0df46e8`](https://togithub.com/Microsoft/TypeScript/commit/0df46e873322b8eeb271a442eaf034d91ae68770) Fix test around RegExp match vs. exec results ([#​50813](https://togithub.com/Microsoft/TypeScript/issues/50813)) - [`906510e`](https://togithub.com/Microsoft/TypeScript/commit/906510e0f30590a4c8fdc892905ccb8dbe512e3d) Fixes for pr - [`2970c5d`](https://togithub.com/Microsoft/TypeScript/commit/2970c5d1671b2376711cd55594c4597d6da7d8c3) make `RegExpExecArray` always include index 0 ([#​50713](https://togithub.com/Microsoft/TypeScript/issues/50713)) - [`0507192`](https://togithub.com/Microsoft/TypeScript/commit/05071920a03f8ea530fe01f79f2537c999ec8b02) Accepting baselines - [`29e50b3`](https://togithub.com/Microsoft/TypeScript/commit/29e50b314900d22b08f6472918f59ae2b40aba08) Rewording documentation - [`01cae69`](https://togithub.com/Microsoft/TypeScript/commit/01cae69e3403a831bc5c752b95c8b7547dd95821) fix(50796): omit questionToken in object literal method completions ([#​50802](https://togithub.com/Microsoft/TypeScript/issues/50802)) - [`3b84f76`](https://togithub.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://togithub.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>
Was attempting to use
expectTypeOf
with unioned types and I was surprised thatexpectTypeOf
was always mismatching.See this repro showcasing the problems of union types that get stuck in
Extends
.Note: This only impacts the LHS of the extends.