props에 대한 타입 정의 추가
- StyledButton 컴포넌트에 대한 props 타입을 지정해야 합니다
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
text: string;
className?: string;
}
const StyledButton = styled.button<ButtonProps>`
...
타입스크립트를 사용할 때, styled-components를 사용하여 컴포넌트를 스타일링하려면 해당 컴포넌트의 props에 대한 타입을 지정해야 합니다. 그래서 styled.button와 같은 형식을 사용합니다.
여기서 는 StyledButton이 받아들일 수 있는 props의 타입을 지정하는 것입니다. 이렇게 하면 TypeScript는 ButtonProps에 정의된 속성 외에 다른 속성이 StyledButton에 전달되는 것을 방지합니다.
따라서, 이 변경은 다른 컴포넌트가 아니라 TypeScript가 이 Button 컴포넌트와 상호작용하는 방식을 제어하기 위한 것입니다.
이러한 타입 지정은 코드의 안전성과 예측 가능성을 높이며, 개발자가 의도하지 않은 prop 전달 등의 실수를 줄여줍니다. 따라서, TypeScript를 사용하는 경우 이런 식으로 스타일드 컴포넌트의 props에 대해 타입 지정을 해주는 것이 좋습니다.