From 419b41f06dfd7c75d9734ce2d61b511f11097c63 Mon Sep 17 00:00:00 2001 From: Jerry Date: Thu, 16 Mar 2023 04:23:15 -0700 Subject: [PATCH] fix: fix animated components ref types (#36472) Summary: I found Animated components like `View`, `Text`, `ScrollView`, `Image` ref type inferred as `any` when ref callback used. ![Screen Shot 2023-03-14 at 7 32 53 PM](https://user-images.githubusercontent.com/64301935/224975295-21047dab-7bd1-4023-93d4-a6ee5c47f1e5.png) this is happening because of `unknown` type is included as union type as below. ![Screen Shot 2023-03-14 at 7 33 01 PM](https://user-images.githubusercontent.com/64301935/224975937-6ee49f7e-55f7-4391-a752-c52c5171ec02.png) So I excluded `unknown` type inferring via fixing `TAugmentRef` utility type. Result below! ![Screen Shot 2023-03-14 at 7 33 36 PM](https://user-images.githubusercontent.com/64301935/224976685-da66e5ec-3ef0-41dd-9e1f-2bb8bfcdf598.png) ## Changelog [GENERAL] [FIXED] - fix animated components ref type inferred `any` Pull Request resolved: https://github.com/facebook/react-native/pull/36472 Test Plan: Ran `yarn test-typescript` and `yarn test-typescript-offline` with no errors. Reviewed By: cipolleschi Differential Revision: D44055510 Pulled By: dmytrorykun fbshipit-source-id: 0d380a2c2198c84d586889e912dec5d2304c213a --- Libraries/Animated/Animated.d.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Libraries/Animated/Animated.d.ts b/Libraries/Animated/Animated.d.ts index 39a5b1d2b039ba..aeeb98146da86a 100644 --- a/Libraries/Animated/Animated.d.ts +++ b/Libraries/Animated/Animated.d.ts @@ -564,7 +564,9 @@ export namespace Animated { type NonAnimatedProps = 'key' | 'ref'; type TAugmentRef = T extends React.Ref - ? React.Ref> + ? unknown extends R + ? never + : React.Ref> : never; export type AnimatedProps = {