はじめに 汎用的なElementレイヤーのコンポーネントを作るときの Props定義はこうした方がよいのではないか、という話です。 ※ここで言うElementレイヤーとは: input, button, label など、atomic design でいう atom の部分 ComponentPropsを使おう このように一つ一つのプロパティを定義するより type Props = { value?: string; onChange?: React.ChangeEventHandler<HTMLInputElement>; }; export const Input = ({ value, onChange }: Props) => ( <input value={value} onChange={onChange} /> );