为另一个 Styled Component 设置样式时,道具的类型应该是什么?

What should be the type of props when styling another Styled Component?

我在我的 NextJS 项目中使用样式化组件和打字稿。我将 div 元素的样式设置如下:

export const ClippedOverlay = styled(
  (
    props: React.DetailedHTMLProps<
      React.HTMLAttributes<HTMLDivElement>,
      HTMLDivElement
    >
  ) => <div {...props} />
)`
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
`;

然后,我对这个 ClippedOverlay 组件进行样式化以进一步制作两个组件。代码如下:

export const ClippedOverlayBoy = styled(
  (
    props: React.DetailedHTMLProps<
      React.HTMLAttributes<HTMLDivElement>,
      HTMLDivElement
    >
  ) => <ClippedOverlay {...props} />
)`
  width: 56.6vw;
  z-index: 2;
  clip-path: polygon(0 0, 100% 0, 77% 100%, 0 100%);
`;

export const ClippedOverlayGirl = styled(
  (
    props: React.DetailedHTMLProps<
      React.HTMLAttributes<HTMLDivElement>,
      HTMLDivElement
    >
  ) => <ClippedOverlay {...props} />
)`
  width: 100%;
  z-index: 1;
`;

但是,在 ClippedOverlayBoyClippedOverlayGirl 样式的组件中,我看到一个关于 ClippedOverlay 用法的打字稿错误 样式组件。

错误如下图所示: Image showing typescript error in IDE

我不知道我做错了什么。你能指出错误吗? 谢谢。

这会起作用

export const ClippedOverlay = styled(
  (
    props: React.DetailedHTMLProps<
      React.HTMLAttributes<HTMLDivElement>,
      HTMLDivElement
    >
  ) => <div {...props} />
)`
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
`;

export const ClippedOverlayGirl = styled(ClippedOverlay)`
  width: 100%;
  z-index: 1;
`;

export const ClippedOverlayBoy = styled(ClippedOverlay)`
  width: 56.6vw;
  z-index: 2;
  clip-path: polygon(0 0, 100% 0, 77% 100%, 0 100%);
`;