Skip to content

Commit 34d17b7

Browse files
committed
add test for interface
1 parent 0ed0376 commit 34d17b7

File tree

2 files changed

+212
-0
lines changed

2 files changed

+212
-0
lines changed
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
@@jsxConfig({version: 3})
2+
3+
module V3: {
4+
module FancyInput: {
5+
@obj
6+
external makeProps: (
7+
~className: string=?,
8+
~children: React.element,
9+
~ref: ReactDOM.Ref.currentDomRef=?,
10+
~key: string=?,
11+
unit,
12+
) => {
13+
"className": option<string>,
14+
"children": React.element,
15+
"ref": option<ReactDOM.Ref.currentDomRef>,
16+
} = ""
17+
let make: React.componentLike<
18+
{
19+
"className": option<string>,
20+
"children": React.element,
21+
"ref": option<ReactDOM.Ref.currentDomRef>,
22+
},
23+
React.element,
24+
>
25+
}
26+
27+
module ForwardRef: {
28+
@obj
29+
external makeProps: (
30+
~ref: React.ref<Js.Nullable.t<inputRef>>=?,
31+
~key: string=?,
32+
unit,
33+
) => {"ref": option<React.ref<Js.Nullable.t<inputRef>>>} = ""
34+
let make: React.componentLike<
35+
{"ref": option<React.ref<Js.Nullable.t<inputRef>>>},
36+
React.element,
37+
>
38+
}
39+
}
40+
41+
@@jsxConfig({version: 4, mode: "classic"})
42+
43+
module V4C: {
44+
module FancyInput: {
45+
type props<'className, 'children, 'ref> = {
46+
className?: 'className,
47+
children: 'children,
48+
ref?: 'ref,
49+
}
50+
51+
let make: React.componentLike<
52+
props<string, React.element, ReactDOM.Ref.currentDomRef>,
53+
React.element,
54+
>
55+
}
56+
57+
module ForwardRef: {
58+
type props<'ref> = {ref?: 'ref}
59+
60+
let make: React.componentLike<props<React.ref<Js.Nullable.t<inputRef>>>, React.element>
61+
}
62+
}
63+
64+
module V4CUncurried: {
65+
module FancyInput: {
66+
type props<'className, 'children, 'ref> = {
67+
className?: 'className,
68+
children: 'children,
69+
ref?: 'ref,
70+
}
71+
72+
let make: React.componentLike<
73+
props<string, React.element, ReactDOM.Ref.currentDomRef>,
74+
React.element,
75+
>
76+
}
77+
78+
module ForwardRef: {
79+
type props<'ref> = {ref?: 'ref}
80+
81+
let make: React.componentLike<props<React.ref<Js.Nullable.t<inputRef>>>, React.element>
82+
}
83+
}
84+
85+
@@jsxConfig({version: 4, mode: "automatic"})
86+
87+
module V4A: {
88+
module FancyInput: {
89+
type props<'className, 'children, 'ref> = {
90+
className?: 'className,
91+
children: 'children,
92+
ref?: 'ref,
93+
}
94+
95+
let make: React.componentLike<
96+
props<string, React.element, ReactDOM.Ref.currentDomRef>,
97+
React.element,
98+
>
99+
}
100+
101+
module ForwardRef: {
102+
type props<'ref> = {ref?: 'ref}
103+
104+
let make: React.componentLike<props<React.ref<Js.Nullable.t<inputRef>>>, React.element>
105+
}
106+
}
107+
108+
module V4AUncurried: {
109+
module FancyInput: {
110+
type props<'className, 'children, 'ref> = {
111+
className?: 'className,
112+
children: 'children,
113+
ref?: 'ref,
114+
}
115+
116+
let make: React.componentLike<
117+
props<string, React.element, ReactDOM.Ref.currentDomRef>,
118+
React.element,
119+
>
120+
}
121+
122+
module ForwardRef: {
123+
type props<'ref> = {ref?: 'ref}
124+
125+
let make: React.componentLike<props<React.ref<Js.Nullable.t<inputRef>>>, React.element>
126+
}
127+
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
@@jsxConfig({version: 3})
2+
3+
module V3: {
4+
module FancyInput: {
5+
@react.component
6+
let make: (
7+
~className: string=?,
8+
~children: React.element,
9+
~ref: ReactDOM.Ref.currentDomRef=?,
10+
) => React.element
11+
}
12+
13+
module ForwardRef: {
14+
@react.component
15+
let make: (~ref: React.ref<Js.Nullable.t<inputRef>>=?) => React.element
16+
}
17+
}
18+
19+
@@jsxConfig({version: 4, mode: "classic"})
20+
21+
module V4C: {
22+
module FancyInput: {
23+
@react.component
24+
let make: (
25+
~className: string=?,
26+
~children: React.element,
27+
~ref: ReactDOM.Ref.currentDomRef=?,
28+
) => React.element
29+
}
30+
31+
module ForwardRef: {
32+
@react.component
33+
let make: (~ref: React.ref<Js.Nullable.t<inputRef>>=?) => React.element
34+
}
35+
}
36+
37+
module V4CUncurried: {
38+
module FancyInput: {
39+
@react.component
40+
let make: (
41+
~className: string=?,
42+
~children: React.element,
43+
~ref: ReactDOM.Ref.currentDomRef=?,
44+
) => React.element
45+
}
46+
47+
module ForwardRef: {
48+
@react.component
49+
let make: (~ref: React.ref<Js.Nullable.t<inputRef>>=?) => React.element
50+
}
51+
}
52+
53+
@@jsxConfig({version: 4, mode: "automatic"})
54+
55+
module V4A: {
56+
module FancyInput: {
57+
@react.component
58+
let make: (
59+
~className: string=?,
60+
~children: React.element,
61+
~ref: ReactDOM.Ref.currentDomRef=?,
62+
) => React.element
63+
}
64+
65+
module ForwardRef: {
66+
@react.component
67+
let make: (~ref: React.ref<Js.Nullable.t<inputRef>>=?) => React.element
68+
}
69+
}
70+
71+
module V4AUncurried: {
72+
module FancyInput: {
73+
@react.component
74+
let make: (
75+
~className: string=?,
76+
~children: React.element,
77+
~ref: ReactDOM.Ref.currentDomRef=?,
78+
) => React.element
79+
}
80+
81+
module ForwardRef: {
82+
@react.component
83+
let make: (~ref: React.ref<Js.Nullable.t<inputRef>>=?) => React.element
84+
}
85+
}

0 commit comments

Comments
 (0)