【发布时间】:2020-02-24 15:39:35
【问题描述】:
我正在构建一个自定义 React 钩子,它接受一个对象(具有作为属性之一的函数)作为参数。
我想获得该函数参数的类型定义,我目前可以这样做:
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”...有没有办法获取该函数参数的类型定义?还是唯一正确的解决方案真的只是导出/导入类型?
对不起,如果这不明确或已经解释过,但我刚开始学习打字稿,我似乎无法找到正确的关键字来找到我所问的答案......
谢谢
【问题讨论】:
-
如果你有handleSumbit的数据接口(你可能有)你应该在函数
const handleSubmit = (data: SubmitValuesInterface) => {}中指定它。这应该让您将此函数传递给 useForm 钩子 -
useForm是来自react-hook-form.com 的那个吗? -
嗯,它不是 react-hook-form 但基本上是我复制它只是为了学习一些东西......
-
@VasylButov 是的,我只是想尽量避免在我使用自定义挂钩的每个文件中导入该接口......但是,如果没有其他选择......
标签: javascript reactjs typescript