File tree Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Expand file tree Collapse file tree 1 file changed +15
-3
lines changed Original file line number Diff line number Diff line change @@ -286,14 +286,26 @@ declare namespace React {
286286 ComponentProps < T >
287287 > ;
288288
289- export type ComponentPropsWithRef <
290- C extends ComponentType < any > | keyof JSXInternal . IntrinsicElements
291- > = C extends new (
289+ export type ComponentPropsWithRef < C extends ElementType > = C extends new (
292290 props : infer P
293291 ) => Component < any , any >
294292 ? PropsWithoutRef < P > & RefAttributes < InstanceType < C > >
295293 : ComponentProps < C > ;
296294
295+ export type ElementRef <
296+ C extends
297+ | ForwardRefExoticComponent < any >
298+ | { new ( props : any ) : Component < any , any > }
299+ | ( ( props : any ) => ReactNode )
300+ | keyof JSXInternal . IntrinsicElements
301+ > = 'ref' extends keyof ComponentPropsWithRef < C >
302+ ? NonNullable < ComponentPropsWithRef < C > [ 'ref' ] > extends RefAttributes <
303+ infer Instance
304+ > [ 'ref' ]
305+ ? Instance
306+ : never
307+ : never ;
308+
297309 export function flushSync < R > ( fn : ( ) => R ) : R ;
298310 export function flushSync < A , R > ( fn : ( a : A ) => R , a : A ) : R ;
299311
You can’t perform that action at this time.
0 commit comments