아이템 35 데이터가 아닌, API 명세를 보고 타입 만들기
명세를 참고해 타입을 생성하면 타입스크립트는 사용자가 실수를 줄일 수 있게 도와준다.
예시 데이터를 참고해 타입을 생성하면 눈앞에 있는 데이터들만 고려하게 되므로 예기치 않은 곳에서 오류가 발생할 수 있다.
API 명세로부터 타입을 생성할 수 있다면 그렇게 하는 것이 좋다. 특히 GraphQL 처럼 자체적으로 타입이 정의된 API 에서 잘 동작한다. GraphQL API 는 타입스크립트와 비슷한 타입 시스템을 사용하여 가능한 모든 쿼리와 인터페이스를 명세하는 스키마로 이루어진다. GraphQL 의 장점은 특정 쿼리에 대해 타입스크립트 타입을 생성할 수 있다는 것이다. GraphQL 쿼리를 타입스크립트 타입으로 변환해 주는 많은 도구가 존재한다. 그 중 하나는 Apollo 이다.
요약
- 코드의 타입 안전성을 얻기 위해 API 또는 데이터 형식에 대한 타입 생성을 고려해야 한다.
- 데이터에 드러나지 않는 예외적인 경우가 문제가 될 수 있기 때문에 데이터보다는 명세로부터 코드를 생성하는 것이 좋다.