mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-10-04 06:47:03 +00:00
[react-native] Make requireNativeComponent work with an update to @types/react
4dd9510a50 changed `React.ReactType` to look at entries in the `JSX.IntrinsicElements` map, which caused rendering `React.ReactType<any>` elements to fail. This commit fixes the RN type declarations by returning `any`. We don't care about the actual return type that much -- it's concretely a string but externally, as a user of react-native, you'd want to only use it as a JSX component type and not as a string.
And since it's a string that isn't registered with `JSX.IntrinsicElements`, there's no extra type information (ex: list of valid props) associated with it. Longer term, it might make sense for `@types/react-native` to add native component types like `RCTView` to `JSX.IntrinsicElements` and go back to using `React.ReactType<'RCTView'>` with `requireNativeComponent`, but this is a disruptive change.
Test plan: Ran tests, verified they pass again.
Fixes #30958.
This commit is contained in:
Vendored
+4
-1
@@ -9037,8 +9037,11 @@ export const PixelRatio: PixelRatioStatic;
|
||||
*
|
||||
* const View = requireNativeComponent('RCTView');
|
||||
*
|
||||
* The concrete return type of `requireNativeComponent` is a string, but the declared type is
|
||||
* `any` because TypeScript assumes anonymous JSX intrinsics (`string` instead of `"div", for
|
||||
* example) not to have any props.
|
||||
*/
|
||||
export function requireNativeComponent(viewName: string): React.ReactType;
|
||||
export function requireNativeComponent(viewName: string): any;
|
||||
|
||||
export function findNodeHandle(
|
||||
componentOrHandle: null | number | React.Component<any, any> | React.ComponentClass<any>
|
||||
|
||||
Reference in New Issue
Block a user