타입스크립트와 관련된 라이브러리는 일반적으로 devDependencies에 속한다.
타입스크립트는 시스템 레벨로 설치하기보다는 devDependencies에 넣는 것이 좋다. 그래야 프로젝트를 사용하는 모두가 항상 정확한 버전의 타입스크립트를 설치할 수 있기 때문이다.
@types 의존성은 dependencies가 아니라 devDependencies에 포함시켜야 한다. 런타임에 @types가 필요한 경우라면 별도의 작업이 필요할 수 있다.
타입스크립트를 사용하면 다음 세 가지 사항을 추가로 고려해야 한다.
세 가지 버전 중 하나라도 맞지 않으면 의존성과 상관없어 보이는 곳에서 예상치 못한 오류가 발생할 수 있다. 타입스크립트에서 일반적으로 의존성을 사용하는 방식은 특정 라이브러리를 devdependencies로 설치하고 타입 정보는 devDependencies로 설치하는 방식이다.
라이브러리를 업데이트 하는 경우 해당 @types 역시 업데이트해야 한다.
타입 선언을 라이브러리에 포함하는 것과 DefinitelyTyped에 공개하는 것 사이의 장단점을 이해해야 한다. 타입스크립트로 작성된 라이브러리라면 타입 선언을 자체적으로 포함하고 자바스크립트로 작성된 라이브러리라면 타입 선언을 DefinitelyTyped에 공개하는 것이 좋다.
<이펙티브 타입스크립트> Dan Vanderkam, 프로그래밍 인사이트 (2021)