React组件children的类型是什么?如何修正Section组件类型报错?
React组件children的正确类型及组件类型修复
在React(尤其是TypeScript环境)中,any类型会绕过类型检查,且在严格模式下会被标记为无效。组件的children属性正确类型应该是ReactNode——它是React内置的类型,涵盖了所有合法的子节点类型:单个React元素、多个元素、文本节点、null、undefined甚至是函数(比如渲染回调),比ReactElement的适用范围更广。
下面是修复后的Section组件代码:
import { ReactElement, ReactNode } from "react" // 定义明确的Props类型,指定children为ReactNode type SectionProps = { children: ReactNode } const Section = ({ children }: SectionProps): ReactElement => { return ( <div className="flex flex-row relative w-screen h-136"> {children} </div> ) } export default Section
说明:
- 创建
SectionProps类型明确组件的参数结构,彻底替代不安全的any类型 - 用
ReactNode标注children,完全符合React对子节点的类型要求 - 组件返回值类型
ReactElement保持不变,因为组件确实返回单个React元素
你的ContactMe组件无需修改,当前写法完全适配修复后Section组件的类型要求。
内容的提问来源于stack exchange,提问作者João Lucas Rodrigues da Silva
相关产品推荐
相关产品推荐

