전체 코드

분석

사용한 라이브러리

개인 분석

ButtonProps

Button은 ButtonProps를 받는다.

1. Omit<InferredVariantProps, “color”>의 이유

InferredVariantPropsbuttonClasses로부터 변형(variants) 정보를 추출한 타입입니다. 이 타입에는 color, variant, size, loading 등의 속성이 포함되어 있습니다. 그런데, ButtonBaseProps에서 color를 직접 정의하고 싶기 때문에 InferredVariantProps에서 color 속성을 제외해야 합니다. 이 과정에서 Omit을 사용하여 InferredVariantProps 타입에서 color 속성을 제거한 후, ButtonBaseProps에서 다시 정의하는 것입니다.

Omit이 필요한가?

2. color?: ButtonColor;의 이유