react + Typescript 中 react有多少内置的类型 分别是什么
React 和 TypeScript 结合使用时,React 提供了一系列的内置类型(也称为类型定义或类型别名)来帮助你在 TypeScript 中编写类型安全的代码。这些类型定义涵盖了 React 的各个方面,从组件类和函数组件到组件属性(props)、状态(state)和事件处理等。
以下是一些常用的 React 内置类型:
-
ReactNode
: 用于描述可以被渲染的内容,比如 JSX 表达式、字符串、数字、或者是这些类型的数组等。 -
ReactElement
: 通常由 JSX 表达式返回的类型,代表了虚拟 DOM 元素。 -
ReactComponentElement
: 特定于类组件或函数组件的元素。 -
ReactFragment
: 用于描述一组可以被渲染的子元素,不需要额外的父节点。 -
ReactPortal
: 用于将子节点渲染到不同 DOM 子树的类型。 -
RefObject
: 用于描述通过React.createRef
创建的 ref 对象。 -
MutableRefObject
: 用于描述通过useRef
创建的可变 ref 对象。 -
ReactElement
: 代表 React 元素,是由React.createElement()
返回的类型。 -
ComponentType<P>
: 用于描述一个接受泛型参数P
的类组件或函数组件。 -
FunctionComponent<P>
或FC<P>
: 用于描述一个接受泛型参数P
的函数组件。 -
ClassComponent<P, S>
: 用于描述一个接受泛型参数P
和S
的类组件。 -
ReactChild
|ReactChildren
: 用于描述可以作为子元素的类型。 -
ReactEventHandler
: 用于描述事件处理函数的类型。 -
SyntheticEvent
: 用于描述 React 封装的合成事件对象。 -
ChangeEvent
,MouseEvent
,KeyboardEvent
等: 表示特定类型的合成事件。 -
PropsWithChildren<P>
: 用于描述一个组件的属性P
,并且这个组件可以有子元素。 -
PropsWithRef<P>
: 用于描述一个组件的属性P
,并且这个组件可以接受 ref。 -
Context<T>
: 用于描述 React 上下文对象的类型。 -
Provider<T>
和Consumer<T>
: 用于描述 React 上下文的提供者和消费者组件。 -
ReactLazy
: 用于描述通过React.lazy
创建的懒加载组件。 -
ReactMemo
: 用于描述通过React.memo
创建的记忆化组件。
这些类型定义是通过 React 的 TypeScript 类型定义文件(通常是 @types/react
包)提供的,是开发 TypeScript 项目时使用 React 的基础。随着 React 的版本更新,可能会引入新的类型或弃用旧的类型,因此建议查看具体版本的类型定义文件或官方文档以获取最新的信息。