-
Notifications
You must be signed in to change notification settings - Fork 24.4k
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
chore: stricter TS check for transform style #38348
Conversation
Base commit: 06668fc |
7898fd5
to
4952fa3
Compare
4952fa3
to
50cc6bf
Compare
@NickGerleman has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator. |
@NickGerleman merged this pull request in e414713. |
Summary: This improves the strictness of TS typings for `transform` on `View`'s `style` prop. Consider the following example, with what TS reports in case of errors, using RN 0.72.3. The ❌ / ✅ symbols indicate whether TS is happy with the code ```tsx ❌ <View style={{ transform: [{ scale: undefined }] }} /> // TS2769: No overload matches this call. ❌ <View style={{ transform: [{ something: 1 }] }} /> // TS2769: No overload matches this call. ✅ <View style={{ transform: [{ scale: 1 }, { rotate: '90deg' }] }} /> ✅ <View style={{ transform: [{ scale: 1, translateX: 1 }] }} /> // this is WRONG, corrected in the next row ✅ <View style={{ transform: [{ scale: 1 }, { translateX: 1 }] }} /> ``` With this change, TS will report an error even for line 4 ```tsx ❌ <View style={{ transform: [{ scale: undefined }] }} /> // TS2769: No overload matches this call. ❌ <View style={{ transform: [{ something: 1 }] }} /> // TS2769: No overload matches this call. ✅ <View style={{ transform: [{ scale: 1 }, { rotate: '90deg' }] }} /> ❌ <View style={{ transform: [{ scale: 1, translateX: 1 }] }} /> // TS2769: No overload matches this call. ✅ <View style={{ transform: [{ scale: 1 }, { translateX: 1 }] }} /> ``` ## Changelog: <!-- Help reviewers and the release process by writing your own changelog entry. [GENERAL] [CHANGED] - stricter TS check for transform style For more details, see: https://reactnative.dev/contributing/changelogs-in-pull-requests Pull Request resolved: facebook#38348 Test Plan: tested locally with the example given above; also added a TS type test Reviewed By: rshest Differential Revision: D47526366 Pulled By: NickGerleman fbshipit-source-id: 5bd007ce29509ccdfce74c3864dee24290d9a175
Hmm, I learned that DefinitelyTyped itself checks with I think it DT only checks against |
Summary:
This improves the strictness of TS typings for
transform
onView
'sstyle
prop. Consider the following example, with what TS reports in case of errors, using RN 0.72.3. The ❌ / ✅ symbols indicate whether TS is happy with the codeWith this change, TS will report an error even for line 4
Changelog:
Test Plan:
tested locally with the example given above; also added a TS type test