Skip to content

Commit 27ac8b1

Browse files
authored
fix: tsc noEmit (#481)
1 parent 5ab5765 commit 27ac8b1

File tree

8 files changed

+57
-27
lines changed

8 files changed

+57
-27
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,6 @@ package-lock.json
3939

4040
# dumi
4141
.dumi/tmp
42-
.dumi/tmp-production
42+
.dumi/tmp-production
43+
44+
bun.lockb

docs/examples/arrowContent.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React from 'react';
1+
import React, { CSSProperties } from 'react';
22
import Tooltip from 'rc-tooltip';
33
import '../../assets/bootstrap_white.less';
44

@@ -11,7 +11,7 @@ const styles = {
1111
background: '#f6f6f6',
1212
verticalAlign: 'middle',
1313
border: '5px solid white',
14-
};
14+
} as CSSProperties;
1515

1616
const rowStyle = {
1717
display: 'table-row',

docs/examples/formError.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
1-
import React, { Component } from 'react';
21
import Tooltip from 'rc-tooltip';
2+
import React, { Component } from 'react';
33

44
import '../../assets/bootstrap.less';
55

6+
interface TestState {
7+
visible: boolean;
8+
destroy?: boolean;
9+
}
10+
611
class Test extends Component {
712
state = {
813
visible: false,
9-
};
14+
} as TestState;
1015

1116
handleDestroy = () => {
1217
this.setState({
1318
destroy: true,
1419
});
1520
};
1621

17-
handleChange = e => {
22+
handleChange = (e) => {
1823
this.setState({
1924
visible: !e.target.value,
2025
});

docs/examples/onVisibleChange.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@ function preventDefault(e) {
66
e.preventDefault();
77
}
88

9+
interface TestState {
10+
visible: boolean;
11+
destroy?: boolean;
12+
}
13+
914
class Test extends Component {
1015
state = {
1116
visible: false,
12-
};
17+
} as TestState;
1318

1419
onVisibleChange = visible => {
1520
this.setState({

docs/examples/showArrow.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type { CSSProperties } from 'react';
12
import React from 'react';
23
import Tooltip from 'rc-tooltip';
34
import '../../assets/bootstrap_white.less';
@@ -11,7 +12,7 @@ const styles = {
1112
background: '#f6f6f6',
1213
verticalAlign: 'middle',
1314
border: '5px solid white',
14-
};
15+
} as CSSProperties;
1516

1617
const rowStyle = {
1718
display: 'table-row',

docs/examples/simple.tsx

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
1-
import React, { Component } from 'react';
1+
import type { ActionType } from '@rc-component/trigger';
2+
import type { OffsetType } from '@rc-component/trigger/lib/interface';
23
import Tooltip from 'rc-tooltip';
4+
import type { CSSProperties } from 'react';
5+
import React, { Component } from 'react';
36
import '../../assets/bootstrap.less';
47
import { placements } from '../../src/placements';
58

6-
class Test extends Component {
9+
interface TestState {
10+
destroyTooltipOnHide: boolean;
11+
destroyTooltipOptions: { name: string; value: number }[];
12+
placement: string;
13+
transitionName: string;
14+
trigger: Record<ActionType, number>;
15+
offsetX?: OffsetType;
16+
offsetY?: OffsetType;
17+
overlayInnerStyle?: CSSProperties;
18+
}
19+
20+
class Test extends Component<any, TestState> {
721
state = {
822
destroyTooltipOnHide: false,
923
destroyTooltipOptions: [
@@ -24,13 +38,15 @@ class Test extends Component {
2438
transitionName: 'rc-tooltip-zoom',
2539
trigger: {
2640
hover: 1,
27-
},
41+
click: 0,
42+
focus: 0,
43+
} as Record<ActionType, number>,
2844
offsetX: placements.right.offset[0],
2945
offsetY: placements.right.offset[1],
3046
overlayInnerStyle: undefined,
3147
};
3248

33-
onPlacementChange = e => {
49+
onPlacementChange = (e) => {
3450
const placement = e.target.value;
3551
const { offset } = placements[placement];
3652
this.setState({
@@ -40,13 +56,13 @@ class Test extends Component {
4056
});
4157
};
4258

43-
onTransitionChange = e => {
59+
onTransitionChange = (e) => {
4460
this.setState({
4561
transitionName: e.target.checked ? e.target.value : '',
4662
});
4763
};
4864

49-
onTriggerChange = e => {
65+
onTriggerChange = (e) => {
5066
const { trigger } = this.state;
5167
if (e.target.checked) {
5268
trigger[e.target.value] = 1;
@@ -58,38 +74,38 @@ class Test extends Component {
5874
});
5975
};
6076

61-
onOffsetXChange = e => {
77+
onOffsetXChange = (e) => {
6278
const targetValue = e.target.value;
6379
this.setState({
6480
offsetX: targetValue || undefined,
6581
});
6682
};
6783

68-
onOffsetYChange = e => {
84+
onOffsetYChange = (e) => {
6985
const targetValue = e.target.value;
7086
this.setState({
7187
offsetY: targetValue || undefined,
7288
});
7389
};
7490

75-
onVisibleChange = visible => {
91+
onVisibleChange = (visible) => {
7692
console.log('tooltip', visible); // eslint-disable-line no-console
7793
};
7894

79-
onDestroyChange = e => {
95+
onDestroyChange = (e) => {
8096
const { value } = e.target;
8197
this.setState({
82-
destroyTooltipOnHide: [false, { keepParent: false }, { keepParent: true }][value],
98+
destroyTooltipOnHide: [false, { keepParent: false }, { keepParent: true }][value] as boolean,
8399
});
84100
};
85101

86102
onOverlayInnerStyleChange = () => {
87-
this.setState(prevState => ({
103+
this.setState((prevState) => ({
88104
overlayInnerStyle: prevState.overlayInnerStyle ? undefined : { background: 'red' },
89105
}));
90106
};
91107

92-
preventDefault = e => {
108+
preventDefault = (e) => {
93109
e.preventDefault();
94110
};
95111

@@ -102,7 +118,7 @@ class Test extends Component {
102118
<label>
103119
placement:
104120
<select value={this.state.placement} onChange={this.onPlacementChange}>
105-
{Object.keys(placements).map(p => (
121+
{Object.keys(placements).map((p) => (
106122
<option key={p} value={p}>
107123
{p}
108124
</option>
@@ -134,7 +150,7 @@ class Test extends Component {
134150
<label>
135151
<input
136152
value="hover"
137-
checked={trigger.hover}
153+
checked={!!trigger.hover}
138154
type="checkbox"
139155
onChange={this.onTriggerChange}
140156
/>
@@ -143,7 +159,7 @@ class Test extends Component {
143159
<label>
144160
<input
145161
value="focus"
146-
checked={trigger.focus}
162+
checked={!!trigger.focus}
147163
type="checkbox"
148164
onChange={this.onTriggerChange}
149165
/>
@@ -152,7 +168,7 @@ class Test extends Component {
152168
<label>
153169
<input
154170
value="click"
155-
checked={trigger.click}
171+
checked={!!trigger.click}
156172
type="checkbox"
157173
onChange={this.onTriggerChange}
158174
/>
@@ -194,7 +210,7 @@ class Test extends Component {
194210
mouseEnterDelay={0}
195211
mouseLeaveDelay={0.1}
196212
destroyTooltipOnHide={this.state.destroyTooltipOnHide}
197-
trigger={Object.keys(this.state.trigger)}
213+
trigger={Object.keys(this.state.trigger) as ActionType[]}
198214
onVisibleChange={this.onVisibleChange}
199215
overlay={<div style={{ height: 50, width: 50 }}>i am a tooltip</div>}
200216
align={{

src/Tooltip.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export interface TooltipProps
1717
| 'mouseEnterDelay'
1818
| 'prefixCls'
1919
| 'forceRender'
20+
| 'popupVisible'
2021
> {
2122
trigger?: ActionType | ActionType[];
2223
defaultVisible?: boolean;

tests/index.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ describe('rc-tooltip', () => {
7878
});
7979

8080
it('access of ref', () => {
81-
const domRef = React.createRef();
81+
const domRef = React.createRef<TooltipRef>();
8282
render(
8383
<Tooltip
8484
trigger={['click']}

0 commit comments

Comments
 (0)