데브허브 | DEVHUB | Assertion이라 쓰고 형 변환이라 읽다.Assertion이라 쓰고 형 변환이라 읽다.
- 타입스크립트의 네로잉(Narrowing)은 런타임에 변수의 타입을 특정 시점에서 더 구체적인 타입으로 좁혀나가는 과정입니다. 🔍
- 과거 터보 레포(Turbo repo)와 스벨트(Svelte) 같은 유명 프로젝트에서 타입스크립트를 제거한 사례가 있었으며, 이는 빌드 복잡성 및 생산성 저하를 이유로 들었습니다. 🚫
- 화자는 타입스크립트 제거의 근본 원인을 자바스크립트 및 DOM에 대한 이해 부족과 비즈니스 로직 개발자의 타입 중요성 경시로 보았습니다. 💡
- 자바스크립트는 런타임에 변수 타입이 결정되므로, 타입스크립트를 사용하더라도 코드 실행 전 오류를 방지하기 위해 네로잉이 필수적입니다. 🛡️
- 네로잉 방법으로는
typeof (원시 타입), instanceof (객체 타입), in 연산자 (속성 존재 여부), 진실성(Truthiness) 체크, 식별 가능한 유니언, 그리고 별도 함수를 이용한 타입 가드가 있습니다. 🛠️
typeof를 활용한 네로잉 예시로, string | number 타입의 변수에서 typeof로 string임을 확인 후 toUpperCase()를 안전하게 호출하는 방법을 제시했습니다. 📝
- 네로잉으로 타입을 특정하기 어려울 때
as 키워드를 사용한 타입 어서션(Type Assertion)을 활용하며, 이는 자바의 형변환과 유사하게 최후의 보루로 간주됩니다. ➡️
- 복잡한 HTML 엘리먼트 유니언 타입(
HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement)에서 checked 속성처럼 특정 엘리먼트에만 존재하는 속성에 접근할 때 네로잉이 중요하게 사용됩니다. 🌐