Skip to content

Commit 2258d7d

Browse files
authored
fix event typings (#4066)
1 parent 544fcad commit 2258d7d

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

src/jsx.d.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,9 +1076,9 @@ export namespace JSXInternal {
10761076
export type TargetedPictureInPictureEvent<Target extends EventTarget> =
10771077
TargetedEvent<Target, PictureInPictureEvent>;
10781078

1079-
export interface EventHandler<E extends TargetedEvent> {
1080-
(this: void, event: E): void;
1081-
}
1079+
export type EventHandler<E extends TargetedEvent> = {
1080+
bivarianceHack(event: E): void;
1081+
}['bivarianceHack'];
10821082

10831083
export type AnimationEventHandler<Target extends EventTarget> = EventHandler<
10841084
TargetedAnimationEvent<Target>

test/ts/Component-test.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,19 @@ function Mapper() {
122122
return [1, 2, 3].map(x => <MapperItem foo={x} key={x} />);
123123
}
124124

125+
class Button extends Component {
126+
handleClick(this: HTMLButtonElement, event: MouseEvent) {
127+
event.preventDefault();
128+
if (event.target instanceof HTMLElement) {
129+
console.log(event.target.localName);
130+
}
131+
}
132+
133+
render() {
134+
return <button onClick={this.handleClick}>{this.props.children}</button>;
135+
}
136+
}
137+
125138
describe('Component', () => {
126139
const component = new SimpleComponent({ initialName: 'da name' });
127140

0 commit comments

Comments
 (0)