例えば下のようなコンポーネントがあって、
import colors from "colors.css"; import styled from "styled-components"; type Props = { primary?: boolean; }; const Button = styled.button<Props>` border: 1px solid ${(props) => (props.primary ? colors.blue : colors.silver)}; `; export default Button;
何らかの理由で import Button from "./Button"
とした状態で Props を得たい場合の型定義。
export type ExtractProps<T> = T extends StyledComponent< any, any, infer R, never > ? R : unknown;
いちおうこれで取り出せたのでメモ。