React 组件中的 TypeScript TS2339 错误:类型“IntrinsicAttributes...”上不存在属性“xyz”

IT技术 reactjs typescript
2021-05-19 20:14:20

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

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

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

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

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

<ValidatedInput
    entity={book}
/>

这给了我一个错误:

TS2339:属性“实体”在类型“IntrinsicAttributes & IntrinsicClassAttributes”& Readonly<{children?: ReactNode;...”上不存在

TypeScript 有什么不高兴的?有人可以帮忙吗?

提前致谢!

2个回答

看起来编译器不明白您正在使用 tsx 语法。验证您的文件是否具有“tsx”扩展名。

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