Reactjs Typescript中泛型格式的歧义
我遇到了以下格式的Typescript generic:Reactjs Typescript中泛型格式的歧义,reactjs,typescript,Reactjs,Typescript,我遇到了以下格式的Typescript generic: 导出常量表单:( 道具:FormProps )=>React.React元素; 这是什么类型的泛型?(是泛型类型还是泛型函数?) 如果是泛型类型(或函数),为什么代码中没有=符号来为其赋值,以及为什么被扩展的类型没有名称,如下所示: export const Form:Name=( 道具:FormProps )=>React.React元素; 通常,此定义扩展的原始类型是什么 表单是一个React函数组件。它是一个通用的函数,它接
导出常量表单:(
道具:FormProps
)=>React.React元素;
=
符号来为其赋值,以及为什么被扩展的类型没有名称,如下所示:
export const Form:Name=(
道具:FormProps
)=>React.React元素;
表单
是一个React函数组件。它是一个通用的函数
,它接受一个参数props
,并返回一个ReactElement
props
参数的类型是FormProps
FormProps
是一个通用的接口
,用于描述特定类型的对象
函数Form
依赖于两个通用变量,FormValues
和InitialFormValues
,这两个变量都作为FormProps
的通用变量传递。这两个泛型都有默认类型:FormValues=Record
和InitialFormValues=Partial
。第二个变量的默认类型为Partial
,取决于第一个变量的实际类型FormValues
为什么代码中没有=
符号来为其赋值
我猜这是在.d.ts
文件中?这是一个类型声明文件,因此它只定义组件的签名,即其参数和返回类型
在常规的.ts
文件中,您需要实现该函数,而不仅仅是声明它
export const Form = <FormValues extends {} = Record<string, any>, InitialFormValues = Partial<FormValues>>(
props: FormProps<FormValues, InitialFormValues>
): React.ReactElement => {
return (<div/>);
};
下面是一个简单泛型函数的类型:
type Add = (n: number) => number;
type ReturnSelf = <T>(value: T) => T;
type FormType = ( props: FormProps ) => React.ReactElement;