我试图理解这个TypeScript签名从react-hook-forms
:
handleSubmit: <TSubmitFieldValues extends FieldValues = TFieldValues>(onValid: SubmitHandler<TSubmitFieldValues>, onInvalid?: SubmitErrorHandler<TFieldValues>) => (e?: React.BaseSyntheticEvent) => Promise<void>;
我特别想明白,但不仅是我想明白:
泛型类型中的等号是什么意思?
<TSubmitFieldValues extends FieldValues = TFieldValues>
签名中怎么会有两个箭头?
[removed for shortening] => (e?: React.BaseSyntheticEvent) => Promise<void>
如果有人能一步一步地解释签名就太好了,谢谢!
泛型类型中的等号是什么意思?
默认类型
签名中怎么会有两个箭头?
是一个返回另一个函数的函数。例如,这个函数:
const myWeirdAdd = arg1 => arg2 => arg1+arg2;
可以这样调用吗?
myWeirdAdd(1)(2); // returns 3;
它的类型是:
type CurriedAdd = (arg1: number) => (arg2: number) => number;