使用 TypeScript 时如何将 prop 传递给 material-ui@next 中的自定义根组件?

Posted

技术标签:

【中文标题】使用 TypeScript 时如何将 prop 传递给 material-ui@next 中的自定义根组件?【英文标题】:How to pass prop to custom root component in material-ui@next when using TypeScript? 【发布时间】:2018-09-21 19:47:54 【问题描述】:

我想用 react-router Link 渲染一个 ListItem 组件作为根组件,如下所示:

        <ListItem
          to="/profile"
          component=Link
        >
          Profile
        </ListItem>

但是,我收到 TypeScript 错误:

(50,15): error TS2339: Property 'to' does not exist on type 'IntrinsicAttributes & ListItemProps &  children?: ReactNode; '.

显然,Link 组件使用的to 属性是ListItem 属性接口的一部分...

如何解决?

【问题讨论】:

【参考方案1】:

TypeScript 不会拒绝使用 prop-spread 语法传递的额外 props,因此这是可行的:

    <ListItem ...to: "/profile" component=Link>
      Profile
    </ListItem>

【讨论】:

以上是关于使用 TypeScript 时如何将 prop 传递给 material-ui@next 中的自定义根组件?的主要内容,如果未能解决你的问题,请参考以下文章

vue ts ,vue使用typescript,三种组件传值方式

使用Typescript和类组件装饰器时如何在Vue Router中传递props

如何在 Vue 中以 Typescript 语法定义使用 prop 作为其初始值的本地数据属性?

将 Svelte 组件导入 TypeScript 文件时是不是可以保留 prop 类型信息?

Vue.js + Typescript:如何将@Prop 类型设置为字符串数组?

如何使用 ESLint 检查 React/Typescript 项目中的 prop 错误?