TypeScript中此语法是什么?解析JSXElementConstructor里的new部分
TypeScript中JSXElementConstructor类型解析
这段代码是React的TypeScript类型定义里的JSXElementConstructor<P>,它是一个联合类型,用来定义所有能生成JSX元素的合法构造器类型,具体包含两种情况:
函数组件类型:
(props: P) => ReactElement<any, any> | null
这是无状态函数组件的类型签名:接收泛型P类型的props参数,返回一个React元素或者null,对应我们日常写的const MyComponent = (props) => <div />这类组件的类型描述。类组件构造函数类型:
new (props: P) => Component<any, any>
这是类组件的构造函数类型,也就是你标注疑问的部分。
关于new部分的具体含义
在TypeScript类型系统中,new (参数) => 返回值是用来描述可实例化构造函数的语法:
new关键字明确表示这个类型对应的是一个可以通过new关键字调用的构造函数(也就是类的构造函数)(props: P)指定了构造函数接收的参数类型为泛型P(即组件的props类型)=> Component<any, any>表示调用这个构造函数(用new)后,会得到一个ReactComponent类的实例
直白点说,这部分就是专门匹配React类组件的类型——因为React类组件必须通过new实例化,且构造函数会接收props作为参数。
内容的提问来源于stack exchange,提问作者amrka
相关产品推荐
相关产品推荐

