我有一个 React Wrapper 组件,它接受一些props,但将所有其他props转发给子组件(尤其是与 className、id 等本机props相关的props)。
然而,当我传递原生props时,Typescript 会抱怨。查看错误信息:
TS2339:属性“className”不存在于类型“IntrinsicAttributes & IntrinsicClassAttributes< Wrapper > & Readonly< { children?: ReactNode; }> & Readonly<WrapperProps>'。
如何获得具有特定props的组件,该组件也接受本机props(不接受任何props并放弃类型检查)?
我的代码如下所示:
interface WrapperProps extends JSX.IntrinsicAttributes {
callback?: Function
}
export class Wrapper extends React.Component<WrapperProps>{
render() {
const { callback, children, ...rest } = this.props;
return <div {...rest}>
{children}
</div>;
}
}
export const Test = () => {
return <Wrapper className="test">Hi there</Wrapper>
}
仅供参考:我在这里发现了一个类似的问题,但答案基本上放弃了类型检查,我想避免这种情况:Link to SO-Question