【问题标题】:TypeScript TS2339 error in React component: Property 'xyz' does not exist on type 'IntrinsicAttributes...'React 组件中的 TypeScript TS2339 错误:类型“IntrinsicAttributes ...”上不存在属性“xyz”
【发布时间】:2018-01-25 06:29:56
【问题描述】:

我正在尝试创建一个带有任何属性的简单 React 组件。以下带有any 的语法拒绝工作(< 之前的意外标记):

export class ValidatedInput extends React.Component<any, any> {...}

通过将any 替换为{},错误就消失了(有人可以解释一下区别):

export class ValidatedInput extends React.Component<{}, {}> {...}

但是,现在当我在另一个文件中使用该组件时,它会抱怨我发送到该组件的属性。例如:

<ValidatedInput
    entity={book}
/>

这给了我一个错误:

TS2339:“IntrinsicAttributes & IntrinsicClassAttributes”和只读类型上不存在属性“实体”

TypeScript 对什么感到不安?有人可以帮忙吗?

提前致谢!

【问题讨论】:

  • 只是一个猜测 - 确保你在 tsx 文件中声明你的组件。
  • 这是一个很好的猜测@Amid!我正在从 ES6 移植代码并忘记更改文件名。如果你能把你的猜测写成答案,我会把它标记为正确答案。

标签: reactjs typescript


【解决方案1】:

编译器似乎不理解您使用的是 tsx 语法。验证您的文件是否具有“tsx”扩展名。

【讨论】:

    【解决方案2】:

    我之前遇到过类似的问题,首先按照@Amid 的建议验证文件类型是 .tsx。如果这不起作用。检查您是否已保存更改。就我而言,我对几个文件进行了大量更改,但没有保存我修改的所有文件,当我保存所有文件时错误消失了。

    【讨论】:

      猜你喜欢
      • 2018-01-14
      • 2019-04-09
      • 2021-10-12
      • 2017-07-24
      • 2018-07-31
      • 2016-09-07
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      相关资源
      最近更新 更多