-
Notifications
You must be signed in to change notification settings - Fork 12.8k
No recursive intersection property checks #37854
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a pretty straightforward change to me - do we know if it causes any measurable perf improvement in react-page
? (Roughly?)
Aside: So I looked into the node 8 build failures (I saw this earlier today, but only just looked into it - I didn't for awhile because for about a week jobs were randomly failing on install across all versions with a hang in npm, which disappeared on rerun) - looks like they're because a dependency of playwright's install script requires node 10.15 or greater, and was picked up as a bugfix in playwright. Maybe this is an impetus to drop node 8 testing and pick up a newer node version.
Regarding perf, |
#37869 fixed the node 8 issues 👍 The discussion on dropping support for 8 is still reasonable to have |
Some more data on the impact of this fix. Compiling
Compiling fixed
Compiling
The fixed With the fixed |
So... Adding the type parameter just ensures the type of the |
Ok, we'll go with this PR then. |
Are there any drawbacks? This looks like a pure win. |
The checking is slightly looser. For example: declare let x: { p: { a?: number, b: string } };
declare let z: { p: { a: null } } & { p: { b: string } };
x = z; // No longer an error We currently report an error on the example above. With this PR there is no error (as was the case before 3.9). |
Fixes the first half of #37600. I have manually verified that the instantiation depth error is gone.