Reactjs Typescript中泛型格式的歧义

Reactjs Typescript中泛型格式的歧义,reactjs,typescript,Reactjs,Typescript,我遇到了以下格式的Typescript generic: 导出常量表单:( 道具:FormProps )=>React.React元素; 这是什么类型的泛型?(是泛型类型还是泛型函数?) 如果是泛型类型(或函数),为什么代码中没有=符号来为其赋值,以及为什么被扩展的类型没有名称,如下所示: export const Form:Name=( 道具:FormProps )=>React.React元素; 通常,此定义扩展的原始类型是什么 表单是一个React函数组件。它是一个通用的函数,它接

我遇到了以下格式的Typescript generic:

导出常量表单:(
道具: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;