roc*_*n_d 2 javascript syntax typescript reactjs
我在 React 中有一个 setState 函数,我想将它作为参数传递给另一个函数。我想知道如何在 TypeScript 中定义它而不使用“any”作为类型:
到目前为止它看起来像这样:
export const keyDownHandler = (event: React.KeyboardEvent, buttonDate: number, setShowCalendar: any): void => {
// stuff happening
setShowCalendar(false)
}
Run Code Online (Sandbox Code Playgroud)
的类型的阵营从状态设定器useStateIS React.Dispatch<React.SetStateAction<stateType>>。在您的情况下,状态类型看起来是boolean,因此:
export const keyDownHandler = (event: React.KeyboardEvent, buttonDate: number, setShowCalendar: React.Dispatch<React.SetStateAction<boolean>>): void => {
// stuff happening
setShowCalendar(false);
};
Run Code Online (Sandbox Code Playgroud)
您可以在index.d.ts中@types/react或在一个不错的 IDE(例如 VSCode)中看到它,您可以通过将鼠标悬停在状态设置器上来看到它:
在 VSCode 中,将鼠标悬停在上面会setShowCalendar显示此弹出窗口:
const setShowCalendar: React.Dispatch<React.SetStateAction<boolean>>