← Back to NOTES 🌰 ← Back to Effective TypeScript

← 아이템 34 - 부정확한 타입보다는 미완성 타입을 사용하기

핵심 요약

명세를 참고해 타입을 생성해야 한다. 눈앞에 있는 데이터들만 고려하게 되면 예기치 않은 곳에서 오류가 발생한다. 명세를 기반으로 타입을 작성하면 예외 케이스를 포함하여 모든 값에 대해 작동한다는 확신을 가질 수 있다.

자세한 내용

타입 설계의 중요성

잘 설계된 타입은 타입스크립트 사용을 즐겁게 해 주는 반면, 잘못 설계된 타입은 비극을 불러온다.

데이터 기반 타입의 문제점

눈앞에 있는 데이터들만 고려해서 타입을 만들면:

quickType 같은 도구로 데이터에서 타입을 자동 생성할 수 있지만, 이는 눈앞에 있는 데이터로 타입을 정의하는 것과 같다.

GeoJSON 예제: 명세 기반 타입의 필요성

시나리오: Feature(기하학 및 관련 속성을 포함하는 지형 객체)의 경계 상자를 계산하는 calculateBoundingBox 함수 작성

문제: Feature 타입을 직접 정의하면 예외 케이스를 놓칠 수 있음

해결: @types/geojson 라이브러리를 통해 GeoJSON 명세를 사용

Geometry 타입의 복잡성

GeoJSON의 Geometry는 여러 타입의 유니온: