Package Scope
Package name: react
Overview
현재 SwitchCase 컴포넌트에서는 discriminated union 타입을 사용할 때 타입 정보가 손실되어 타입 안전성이 보장되지 않는 문제가 있습니다.
type Quiz =
| { type: 'multiple'; options: string[] }
| { type: 'ox' }
// 현재는 타입 에러가 발생합니다
<SwitchCase
value={curQuiz.type}
caseBy={{
multiple: (
<div>
{curQuiz.options} // Error: Property 'options' does not exist on type 'Quiz'
</div>
),
ox: <div />
}}
/>
현재 해결을 위해 아래와 같은 수동 타입 체크가 필요한 상황입니다:
{curQuiz.type === 'multiple' && curQuiz.options}
Additional context
- 현재 문제점:
- 타입스크립트의 타입 내로잉(narrowing) 기능을 활용하지 못함
- 불필요한 타입 가드 코드가 필요함
- 타입 안전성이 보장되지 않음
- 개선 효과:
- 불필요한 타입 체크 코드 제거
- 타입스크립트의 타입 시스템 활용도 증가
- 개발자 경험 향상
- 타입 안전성 보장