데브허브 | DEVHUB | The TypeScript hill I'm willing to die onThe TypeScript hill I'm willing to die on
SubmitEvent의 e.target 타입이 EventTarget | null로 추론되어 HTMLFormElement가 필요한 상황에서 TypeScript 오류가 발생합니다. 🤯
- 이 문제를 해결하기 위해
as any 또는 // @ts-expect-error를 사용하여 TypeScript에 타입 정보를 명시적으로 속여야 합니다. 🎭
- 일반적으로
// @ts-expect-error가 상위 타입 수정 시 자동 감지된다는 이유로 선호되지만, 필자는 이에 강력히 반대합니다. 💡
- 필자는
as any가 // @ts-expect-error보다 훨씬 더 정밀하고 안전한 해결책이라고 주장합니다. 🎯
as any는 특정 타입 단언에만 적용되는 '메스'와 같아 다른 잠재적 오류를 가리지 않고 정확한 지점을 수정합니다. 🔪
- 반면
// @ts-expect-error는 다음 줄 전체에 적용되는 '쇠망치'와 같아 의도치 않은 다른 오류까지 숨길 수 있어 위험합니다. 🔨
- 결론적으로, 가능하면 타입 단언을 피해야 하지만, 불가피할 경우
as any가 더 정밀한 제어를 제공하여 선호됩니다. ✅