在函数声明中获取函数参数类型

问题描述 投票:0回答:1

我正在构建一个定制的React钩子,该钩子接受一个对象(具有函数作为属性之一)作为参数。

我想获得该函数的参数的类型定义,目前我可以这样:

  const { submitHandler, register } = useForm({
    handleSubmit: data => {
      /*
      Everything is ok:
      (parameter) data: {
          inputs: InputRefs;
          e: React.FormEvent<HTMLFormElement>;
      }
      */
    }
  });

但是,我想通过使handleSubmit参数对象之外的useForm来拆分代码,如下所示:

  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”。是否可以获取该函数的参数的类型定义?还是唯一正确的解决方案实际上只是导出/导入类型?

很抱歉,如果这个不是很明确或已经被解释过,但是我刚刚开始学习打字稿,但我似乎找不到正确的关键字来找到我要问的答案...

谢谢

javascript reactjs typescript
1个回答
0
投票

在此处右键单击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 });
© www.soinside.com 2019 - 2024. All rights reserved.