在使用 TypeScript 和 React/Redux 开发时,有时会遇到类型错误,提示“类型'IntrinsicAttributes & IntrinsicClassAttributes'上不存在属性'XXX'”。这通常是因为 TypeScript 编译器无法识别某个属性在组件上的合法性。
这个错误通常有以下几种原因:
确保组件定义了所需的属性。例如:
import React from 'react';
interface MyComponentProps {
XXX: string;
}
const MyComponent: React.FC<MyComponentProps> = ({ XXX }) => {
return <div>{XXX}</div>;
};
export default MyComponent;
确保传递给组件的属性类型与组件期望的类型匹配。例如:
import React from 'react';
import MyComponent from './MyComponent';
const App: React.FC = () => {
const xxxValue = 'Hello, World!';
return <MyComponent XXX={xxxValue} />;
};
export default App;
如果使用了高阶组件,确保属性正确传递。例如:
import React from 'react';
const withExtraProps = <P extends object>(WrappedComponent: React.ComponentType<P>) => {
return (props: P & { extraProp: string }) => (
<WrappedComponent {...props} />
);
};
const MyComponent: React.FC<{ XXX: string }> = ({ XXX }) => {
return <div>{XXX}</div>;
};
const EnhancedComponent = withExtraProps(MyComponent);
const App: React.FC = () => {
const xxxValue = 'Hello, World!';
return <EnhancedComponent XXX={xxxValue} extraProp="Extra" />;
};
export default App;
通过以上方法,可以有效解决“类型'IntrinsicAttributes & IntrinsicClassAttributes'上不存在属性'XXX'”的问题。
领取专属 10元无门槛券
手把手带您无忧上云