我正在构建一个自定义 React 钩子(Hook),它接受一个对象(其属性之一是函数)作为参数。
我想获得该函数参数的类型定义,我目前可以这样做:
const { submitHandler, register } = useForm({
handleSubmit: data => {
/*
Everything is ok:
(parameter) data: {
inputs: InputRefs;
e: React.FormEvent<HTMLFormElement>;
}
*/
}
});
但是,我想通过在 useForm
参数对象之外获取 handleSubmit
来拆分代码,如下所示:
const handleSubmit = data => {
// Parameter 'data' implicitly has an 'any' type, but a better type may be inferred from usage.
};
const { submitHandler, register } = useForm({ handleSubmit });
但是如果我这样做,data
的类型为“any”...有没有办法获取该函数参数的类型定义?或者唯一正确的解决方案实际上只是导出/导入类型?
抱歉,如果这不明确或已经解释过,但我刚刚开始学习 typescript ,我似乎找不到正确的关键字来找到我所问问题的答案......
谢谢
最佳答案
右键单击此处的handleSubmit
:
const { submitHandler, register } = useForm({
handleSubmit: data => {
/*
Everything is ok:
(parameter) data: {
inputs: InputRefs;
e: React.FormEvent<HTMLFormElement>;
}
*/
}
});
并选择“转到定义”。这将为您提供需要在此处指定的类型:
const handleSubmit: ${Type} = data => {
// Parameter 'data' implicitly has an 'any' type, but a better type may be inferred from usage.
};
const { submitHandler, register } = useForm({ handleSubmit });
关于javascript - 获取函数声明上的函数参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60379324/