[React Typescript] Extracting Props from Custom Components

// Imagine NavBar is an external library!

export const NavBar = (props: {
  title: string;
  links: string[];
  children: React.ReactNode;
}) => {
  return <div>Some content</div>;
};

// Your app:

import { Equal, Expect } from '../helpers/type-utils';
type PropsFrom<TComponent> = TComponent extends React.FC<infer Props>
  ? Props
  : TComponent extends React.Component<infer Props>
  ? Props
  : never;
type NavBarProps = PropsFrom<typeof NavBar>;

type test = Expect<
  Equal<
    NavBarProps,
    {
      title: string;
      links: string[];
      children: React.ReactNode;
    }
  >
>;

 

Or:

import type { ComponentProps } from 'react';

type NavBarProps = ComponentProps<typeof NavBar>;

 

posted @   Zhentiw  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2017-05-22 [Http] Understand what an HTTP Request is
2016-05-22 [io PWA] keynote: Launching a Progressive Web App on Google.com
2016-05-22 [PWA] 18. Clean the photo cache
2016-05-22 [PWA] 17. Cache the photo
点击右上角即可分享
微信分享提示