如何在TypeScript中将函数类型声明为参数

我在 React 中有一个 setState 函数,我想将它作为参数传递给另一个函数。我想知道如何在 TypeScript 中定义它而不使用“any”作为类型:

到目前为止它看起来像这样:

export const keyDownHandler = (event: React.KeyboardEvent, buttonDate: number, setShowCalendar: any): void => {
// stuff happening
setShowCalendar(false)
}

回答

的类型的阵营从状态设定器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);
};

您可以在index.d.ts@types/react或在一个不错的 IDE(例如 VSCode)中看到它,您可以通过将鼠标悬停在状态设置器上来看到它:

在 VSCode 中,将鼠标悬停在上面会setShowCalendar显示此弹出窗口:

const setShowCalendar: React.Dispatch<React.SetStateAction<boolean>>


以上是如何在TypeScript中将函数类型声明为参数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>