-
-
Notifications
You must be signed in to change notification settings - Fork 32.3k
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
Bump typescript from 3.2.4 to 3.8.2 #19242
Conversation
No bundle size changes comparing 7582461...3406717 |
2543a60
to
df5436f
Compare
@eps1lon There is an interesting data point we could leverage (but to be cautious about the interpretation, does it have a signal/noise ratio high enough?). |
I was trying to be consistent with material-ui but then just updated to the latest one. And did not get any problems. Actually ts is not following semver. So I think we need to just update it, cause new features are really awesome. |
df5436f
to
0ccca2c
Compare
603d0ef
to
c5dc111
Compare
This would allow us to remove |
Sure but I don't think we should do it. Just like we wouldn't use any react features that aren't available in the lowest react version we support. |
Should we add a mention about the lowest version of TypeScript we support in https://material-ui.com/getting-started/supported-platforms/ (after React)? |
Agreed, should probably mention somewhere that |
3fd285c
to
16fe089
Compare
Intended to be long-living. Will receive occasional merges from other PRs that change types to make sure we're not creating debt. |
16fe089
to
c91235e
Compare
3060e90
to
2cba1fb
Compare
2cba1fb
to
dd7d706
Compare
Plan is to merge this once 3.8.2 is released. |
9b34bfb
to
a31df86
Compare
A more specific interface can't be assigned to a more generic one if the generic one has an index signature. Workaround used from microsoft/TypeScript#15300 (comment)
This reverts commit dd7d706.
a31df86
to
3406717
Compare
Curious how you plan on verifying that you don't accidentally use syntax not supported by |
Not yet. If we regress too often we would have to look into it. Until then typescript is treated like any other dependency. For example we're also using the latest react version and have no tooling to verify how the code behaves on older versions. |
BTW there is no critical breaking changes between 3.2 and 3.8 moreover if typescript will find something inconvenient it will fail to any if |
But that is not for you to decide what's critical and what is not. If you use a particular pattern and this breaks between 3.2 and 3.3 then a red build might be critical because it prevents a deploy. So we definitely keep supporting 3.2.4 in v4. Just like we support IE11 but don't actually run automated tests on it. Only data point I have about usage is
-- DefinitelyTyped/DefinitelyTyped#40050 I'd expect 3.2.4 or newer to cover at least 95%. |
3.2.4 is the lowest version of typescript we support. By holding it back we made sure all types work as expected with the lowest version.
We change this in order to verify efforts made to address #19113. The build will break at first. The changes to types will be included in a separate PR to verify that the changes work for 3.2.4 as well.
The goal is to have one PR that changes (and hopefully simplifies) the types without changing the typescript version. This PR will (after the previous one is merged) only contain changes to the tests and the used typescript version.
Changing this is justifiable because of precedent: we test with the latest version of react as well. So far this worked but it's hardly compareable since typescript and react use different version schemes.