gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 09:35:30 31 4
gpt4 key购买 nike

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

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

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

最佳答案

来自 useState 的 React 状态 setter 的类型是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)中,您可以通过将鼠标悬停在状态 setter 上来查看它:

Cursor over state setter showing popup with const setShowCalendar: React.Dispatch<React.SetStateAction<boolean>>

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

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

关于javascript - 如何在 TypeScript 中将函数类型声明为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65807730/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com