Skip to content

Commit e3b6c6e

Browse files
committed
Rebase on top of #5619
1 parent 7e56478 commit e3b6c6e

File tree

7 files changed

+82
-41
lines changed

7 files changed

+82
-41
lines changed

jscomp/gentype_tests/typescript-react-example/src/ExportWithRename.gen.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ const ExportWithRenameBS: any = ExportWithRenameBS__Es6Import;
99
// tslint:disable-next-line:interface-over-type-literal
1010
export type props<s> = { readonly key?: string; readonly s: s };
1111

12-
export const ExportWithRename: (_1:props<string>) => JSX.Element = ExportWithRenameBS.make;
12+
export const ExportWithRename: React.ComponentType<{ readonly s: string }> = ExportWithRenameBS.make;

jscomp/gentype_tests/typescript-react-example/src/Hooks.gen.tsx

Lines changed: 44 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
/* eslint-disable import/first */
33

44

5+
import * as React from 'react';
6+
57
// @ts-ignore: Implicit any on import
68
import * as Curry__Es6Import from 'rescript/lib/es6/curry.js';
79
const Curry: any = Curry__Es6Import;
@@ -102,21 +104,21 @@ export type DD_props<array,name> = {
102104
readonly name: name
103105
};
104106

105-
export const $$default: (_1:props<vehicle>) => JSX.Element = HooksBS.default;
107+
export const $$default: React.ComponentType<{ readonly vehicle: vehicle }> = HooksBS.default;
106108

107109
export default $$default;
108110

109-
export const Another_anotherComponent: (_1:Another_props<vehicle,(() => void)>) => JSX.Element = HooksBS.Another.anotherComponent;
111+
export const Another_anotherComponent: React.ComponentType<{ readonly vehicle: vehicle; readonly callback: () => void }> = HooksBS.Another.anotherComponent;
110112

111-
export const Inner_make: (_1:Inner_props<vehicle>) => JSX.Element = HooksBS.Inner.make;
113+
export const Inner_make: React.ComponentType<{ readonly vehicle: vehicle }> = HooksBS.Inner.make;
112114

113-
export const Inner_Another_anotherComponent: (_1:Inner_Another_props<vehicle>) => JSX.Element = HooksBS.Inner.Another.anotherComponent;
115+
export const Inner_Another_anotherComponent: React.ComponentType<{ readonly vehicle: vehicle }> = HooksBS.Inner.Another.anotherComponent;
114116

115-
export const Inner_Inner2_make: (_1:Inner_Inner2_props<vehicle>) => JSX.Element = HooksBS.Inner.Inner2.make;
117+
export const Inner_Inner2_make: React.ComponentType<{ readonly vehicle: vehicle }> = HooksBS.Inner.Inner2.make;
116118

117-
export const Inner_Inner2_Another_anotherComponent: (_1:Inner_Inner2_Another_props<vehicle>) => JSX.Element = HooksBS.Inner.Inner2.Another.anotherComponent;
119+
export const Inner_Inner2_Another_anotherComponent: React.ComponentType<{ readonly vehicle: vehicle }> = HooksBS.Inner.Inner2.Another.anotherComponent;
118120

119-
export const NoProps_make: (_1:NoProps_props) => JSX.Element = HooksBS.NoProps.make;
121+
export const NoProps_make: React.ComponentType<{}> = HooksBS.NoProps.make;
120122

121123
export const functionWithRenamedArgs: (_1:{
122124
readonly to: vehicle;
@@ -130,11 +132,16 @@ export const functionWithRenamedArgs: (_1:{
130132
return result
131133
};
132134

133-
export const WithRename_componentWithRenamedArgs: (_1:WithRename_props<vehicle,vehicle,cb>) => JSX.Element = function (Arg1: any) {
134-
const result = HooksBS.WithRename.componentWithRenamedArgs({key:Arg1.key, _to:Arg1._to, _Type:Arg1._Type, cb:function (Argto: any) {
135+
export const WithRename_componentWithRenamedArgs: React.ComponentType<{
136+
readonly _to: vehicle;
137+
readonly _Type: vehicle;
138+
readonly cb: cb
139+
}> = function Hooks_WithRename_componentWithRenamedArgs(Arg1: any) {
140+
const $props = {_to:Arg1._to, _Type:Arg1._Type, cb:function (Argto: any) {
135141
const result1 = Arg1.cb({to:Argto});
136142
return result1
137-
}});
143+
}};
144+
const result = React.createElement(HooksBS.WithRename.componentWithRenamedArgs, $props);
138145
return result
139146
};
140147

@@ -143,45 +150,53 @@ export const WithRef_makeWithRef: (_1:WithRef_props<vehicle>, _2:(null | undefin
143150
return result
144151
};
145152

146-
export const testForwardRef: (_1:WithRef_props<vehicle>) => JSX.Element = HooksBS.testForwardRef;
153+
export const testForwardRef: React.ComponentType<{ readonly vehicle: vehicle }> = HooksBS.testForwardRef;
147154

148-
export const ForwardRef_input: (_1:ForwardRef_props<r>) => JSX.Element = HooksBS.ForwardRef.input;
155+
export const ForwardRef_input: React.ComponentType<{ readonly ref?: any; readonly r: r }> = HooksBS.ForwardRef.input;
149156

150-
export const Poly_polymorphicComponent: <T1>(_1:Poly_props<[vehicle, T1]>) => JSX.Element = HooksBS.Poly.polymorphicComponent;
157+
export const Poly_polymorphicComponent: React.ComponentType<{ readonly p: [vehicle, any] }> = HooksBS.Poly.polymorphicComponent;
151158

152-
export const Fun_functionReturningReactElement: (_1:Fun_props<string>) => JSX.Element = HooksBS.Fun.functionReturningReactElement;
159+
export const Fun_functionReturningReactElement: React.ComponentType<{ readonly name: string }> = HooksBS.Fun.functionReturningReactElement;
153160

154-
export const RenderPropRequiresConversion_make: (_1:RenderPropRequiresConversion_props<React.ComponentType<{ readonly number: number; readonly vehicle: vehicle }>>) => JSX.Element = HooksBS.RenderPropRequiresConversion.make;
161+
export const RenderPropRequiresConversion_make: React.ComponentType<{ readonly renderVehicle: React.ComponentType<{ readonly number: number; readonly vehicle: vehicle }> }> = HooksBS.RenderPropRequiresConversion.make;
155162

156-
export const WithChildren_aComponentWithChildren: (_1:WithChildren_props<vehicle,JSX.Element>) => JSX.Element = HooksBS.WithChildren.aComponentWithChildren;
163+
export const WithChildren_aComponentWithChildren: React.ComponentType<{ readonly vehicle: vehicle; readonly children: React.ReactNode }> = HooksBS.WithChildren.aComponentWithChildren;
157164

158-
export const DD_make: (_1:DD_props<Js_TypedArray2_Uint8Array_t,string>) => JSX.Element = HooksBS.DD.make;
165+
export const DD_make: React.ComponentType<{ readonly array: Js_TypedArray2_Uint8Array_t; readonly name: string }> = HooksBS.DD.make;
159166

160-
export const NoProps: { make: (_1:NoProps_props) => JSX.Element } = HooksBS.NoProps
167+
export const NoProps: { make: React.ComponentType<{}> } = HooksBS.NoProps
161168

162169
export const Inner: {
163170
Inner2: {
164171
Another: {
165-
anotherComponent: (_1:Inner_Inner2_Another_props<vehicle>) => JSX.Element
172+
anotherComponent: React.ComponentType<{
173+
readonly vehicle: vehicle
174+
}>
166175
};
167-
make: (_1:Inner_Inner2_props<vehicle>) => JSX.Element
176+
make: React.ComponentType<{
177+
readonly vehicle: vehicle
178+
}>
168179
};
169180
Another: {
170-
anotherComponent: (_1:Inner_Another_props<vehicle>) => JSX.Element
181+
anotherComponent: React.ComponentType<{
182+
readonly vehicle: vehicle
183+
}>
171184
};
172-
make: (_1:Inner_props<vehicle>) => JSX.Element
185+
make: React.ComponentType<{
186+
readonly vehicle: vehicle
187+
}>
173188
} = HooksBS.Inner
174189

175-
export const RenderPropRequiresConversion: { make: (_1:RenderPropRequiresConversion_props<React.ComponentType<{ readonly number: number; readonly vehicle: vehicle }>>) => JSX.Element } = HooksBS.RenderPropRequiresConversion
190+
export const RenderPropRequiresConversion: { make: React.ComponentType<{ readonly renderVehicle: React.ComponentType<{ readonly number: number; readonly vehicle: vehicle }> }> } = HooksBS.RenderPropRequiresConversion
176191

177-
export const ForwardRef: { input: (_1:ForwardRef_props<r>) => JSX.Element } = HooksBS.ForwardRef
192+
export const ForwardRef: { input: React.ComponentType<{ readonly ref?: any; readonly r: r }> } = HooksBS.ForwardRef
178193

179-
export const Fun: { functionReturningReactElement: (_1:Fun_props<string>) => JSX.Element } = HooksBS.Fun
194+
export const Fun: { functionReturningReactElement: React.ComponentType<{ readonly name: string }> } = HooksBS.Fun
180195

181-
export const WithChildren: { aComponentWithChildren: (_1:WithChildren_props<vehicle,JSX.Element>) => JSX.Element } = HooksBS.WithChildren
196+
export const WithChildren: { aComponentWithChildren: React.ComponentType<{ readonly vehicle: vehicle; readonly children: React.ReactNode }> } = HooksBS.WithChildren
182197

183-
export const DD: { make: (_1:DD_props<Js_TypedArray2_Uint8Array_t,string>) => JSX.Element } = HooksBS.DD
198+
export const DD: { make: React.ComponentType<{ readonly array: Js_TypedArray2_Uint8Array_t; readonly name: string }> } = HooksBS.DD
184199

185-
export const Another: { anotherComponent: (_1:Another_props<vehicle,(() => void)>) => JSX.Element } = HooksBS.Another
200+
export const Another: { anotherComponent: React.ComponentType<{ readonly vehicle: vehicle; readonly callback: () => void }> } = HooksBS.Another
186201

187-
export const Poly: { polymorphicComponent: <T1>(_1:Poly_props<[vehicle, T1]>) => JSX.Element } = HooksBS.Poly
202+
export const Poly: { polymorphicComponent: React.ComponentType<{ readonly p: [vehicle, any] }> } = HooksBS.Poly

jscomp/gentype_tests/typescript-react-example/src/ImportHookDefault.gen.tsx

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,32 @@ import {default as makeNotChecked} from './hookExample';
77
import {default as defaultNotChecked} from './hookExample';
88

99
// In case of type error, check the type of 'make' in 'ImportHookDefault.re' and './hookExample'.
10-
export const makeTypeChecked: (_1:props<person,JSX.Element,ImportHooks_renderMe<string>>) => JSX.Element = makeNotChecked;
10+
export const makeTypeChecked: React.ComponentType<{
11+
readonly person: person;
12+
readonly children: React.ReactNode;
13+
readonly renderMe: ImportHooks_renderMe<string>
14+
}> = makeNotChecked;
1115

1216
// Export 'make' early to allow circular import from the '.bs.js' file.
13-
export const make: unknown = makeTypeChecked as (_1:props<person,JSX.Element,ImportHooks_renderMe<string>>) => JSX.Element;
17+
export const make: unknown = makeTypeChecked as React.ComponentType<{
18+
readonly person: person;
19+
readonly children: React.ReactNode;
20+
readonly renderMe: ImportHooks_renderMe<string>
21+
}>;
1422

1523
// In case of type error, check the type of 'default' in 'ImportHookDefault.re' and './hookExample'.
16-
export const defaultTypeChecked: (_1:MM_props<person,JSX.Element,ImportHooks_renderMe<string>>) => JSX.Element = defaultNotChecked;
24+
export const defaultTypeChecked: React.ComponentType<{
25+
readonly person: person;
26+
readonly children: React.ReactNode;
27+
readonly renderMe: ImportHooks_renderMe<string>
28+
}> = defaultNotChecked;
1729

1830
// Export '$$default' early to allow circular import from the '.bs.js' file.
19-
export const $$default: unknown = defaultTypeChecked as (_1:MM_props<person,JSX.Element,ImportHooks_renderMe<string>>) => JSX.Element;
31+
export const $$default: unknown = defaultTypeChecked as React.ComponentType<{
32+
readonly person: person;
33+
readonly children: React.ReactNode;
34+
readonly renderMe: ImportHooks_renderMe<string>
35+
}>;
2036

2137
import type {renderMe as ImportHooks_renderMe} from './ImportHooks.gen';
2238

jscomp/gentype_tests/typescript-react-example/src/ImportHooks.gen.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,20 @@ import {makeRenamed as makeRenamedNotChecked} from './hookExample';
77
import {foo as fooNotChecked} from './hookExample';
88

99
// In case of type error, check the type of 'makeRenamed' in 'ImportHooks.re' and './hookExample'.
10-
export const makeRenamedTypeChecked: <a>(_1:props<JSX.Element,person,JSX.Element,renderMe<a>>) => JSX.Element = makeRenamedNotChecked;
10+
export const makeRenamedTypeChecked: React.ComponentType<{
11+
readonly actions?: JSX.Element;
12+
readonly person: person;
13+
readonly children: React.ReactNode;
14+
readonly renderMe: renderMe<any>
15+
}> = makeRenamedNotChecked;
1116

1217
// Export 'makeRenamed' early to allow circular import from the '.bs.js' file.
13-
export const makeRenamed: unknown = makeRenamedTypeChecked as <a>(_1:props<JSX.Element,person,JSX.Element,renderMe<a>>) => JSX.Element;
18+
export const makeRenamed: unknown = makeRenamedTypeChecked as React.ComponentType<{
19+
readonly actions?: JSX.Element;
20+
readonly person: person;
21+
readonly children: React.ReactNode;
22+
readonly renderMe: renderMe<any>
23+
}>;
1424

1525
// In case of type error, check the type of 'foo' in 'ImportHooks.re' and './hookExample'.
1626
export const fooTypeChecked: (_1:{ readonly person: person }) => string = fooNotChecked;

jscomp/gentype_tests/typescript-react-example/src/ImportIndex.gen.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import {default as defaultNotChecked} from './';
66

77
// In case of type error, check the type of 'default' in 'ImportIndex.re' and './'.
8-
export const defaultTypeChecked: (_1:props<"push" | "replace">) => JSX.Element = defaultNotChecked;
8+
export const defaultTypeChecked: React.ComponentType<{ readonly method?: "push" | "replace" }> = defaultNotChecked;
99

1010
// Export '$$default' early to allow circular import from the '.bs.js' file.
11-
export const $$default: unknown = defaultTypeChecked as (_1:props<"push" | "replace">) => JSX.Element;
11+
export const $$default: unknown = defaultTypeChecked as React.ComponentType<{ readonly method?: "push" | "replace" }>;
1212

1313
// tslint:disable-next-line:interface-over-type-literal
1414
export type props<method> = { readonly key?: string; readonly method?: method };

jscomp/gentype_tests/typescript-react-example/src/MyInput.gen.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import {default as defaultNotChecked} from './MyInput';
66

77
// In case of type error, check the type of 'default' in 'MyInput.re' and './MyInput'.
8-
export const defaultTypeChecked: (_1:props<((_1:inputFocusEvent) => void)>) => JSX.Element = defaultNotChecked;
8+
export const defaultTypeChecked: React.ComponentType<{ readonly onFocus?: (_1:inputFocusEvent) => void }> = defaultNotChecked;
99

1010
// Export '$$default' early to allow circular import from the '.bs.js' file.
11-
export const $$default: unknown = defaultTypeChecked as (_1:props<((_1:inputFocusEvent) => void)>) => JSX.Element;
11+
export const $$default: unknown = defaultTypeChecked as React.ComponentType<{ readonly onFocus?: (_1:inputFocusEvent) => void }>;
1212

1313
import type {inputFocusEvent as $$inputFocusEvent} from './shims/ReactEvent.shim';
1414

jscomp/gentype_tests/typescript-react-example/src/OnClick2.gen.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ const OnClick2BS: any = OnClick2BS__Es6Import;
99
// tslint:disable-next-line:interface-over-type-literal
1010
export type props<onClick> = { readonly key?: string; readonly onClick: onClick };
1111

12-
export const make: (_1:props<((_1:MouseEvent) => void)>) => JSX.Element = OnClick2BS.make;
12+
export const make: React.ComponentType<{ readonly onClick: (_1:MouseEvent) => void }> = OnClick2BS.make;

0 commit comments

Comments
 (0)