reactjs - importovať typy udalostí z Reactu (TypeScript)
Ako importovať typy udalostí z Reactu?
Ako príklad, ako importovať KeyboardEvent, aby sa mohol použiť pre anotáciu typu callbacku onKeyDown?
Prezrel som si súbor Material-ui .d.ts a zistil som, že v tom súbore sa EventTypes používajú tak, ako sú definované v React.
onKeyDown?: React.KeyboardEventHandler;
A v React .d.ts
type KeyboardEventHandler = EventHandler<KeyboardEvent>;
Ale nemôžem nájsť spôsob, ako ich importovať ...
Odpoveď č. 1
Pre mňa to funguje dobre:
handleKeyPress (event: React.KeyboardEvent): any {
}
A ja tiež používam material-ui
Odpoveď č. 2
Pridajte KeyboardEvent do svojho importu reactu. Potom vo vašom handleri môžete použiť typ KeyboardEvent. Ak ho nešpecifikujete v importovom vyhlásení, použijete ES5 deklaráciu KeyBoardEvent, ktorá sa nebude kompilovať s vaším react projektom.
import React, { Component, KeyboardEvent } from "react";
export class MyInput extends Component{
...
handleKeyDown(e: KeyboardEvent<HTMLInputElement>) {
console.log(e);
// Do something here
}
render() {
return (
<input onKeyDown={this.handleKeyDown.bind(this}/>
);
}
}
}
