首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何编写提取传入组件的属性类型的泛型

编写提取传入组件的属性类型的泛型可以使用 TypeScript 的反射能力来实现。下面是一个示例代码:

代码语言:txt
复制
type ExtractPropsType<T> = T extends React.ComponentType<infer P> ? P : never;

// 示例组件
interface MyComponentProps {
  name: string;
  age: number;
}

class MyComponent extends React.Component<MyComponentProps> {
  render() {
    return <div>Hello, {this.props.name}!</div>;
  }
}

// 使用示例
type PropsType = ExtractPropsType<typeof MyComponent>; // PropsType 将被推断为 MyComponentProps 类型

// 输出结果
console.log(PropsType);

在上面的示例中,我们定义了一个泛型类型 ExtractPropsType<T>,它接受一个组件类型 T 作为参数。通过使用条件类型和 infer 关键字,我们判断 T 是否为 React.ComponentType 的子类型,如果是,则提取出其属性类型 P,否则返回 never 类型。

然后,我们定义了一个示例组件 MyComponent,并使用 ExtractPropsType 泛型来提取其属性类型为 PropsType。最后,我们将 PropsType 打印出来,可以看到输出结果为 MyComponentProps 类型。

这样,我们就成功编写了一个能够提取传入组件的属性类型的泛型。在实际应用中,你可以根据需要将其应用到你的项目中,并根据具体情况进行调整和扩展。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券