타입스크립트를 시스템 레벨에서 설치하지 말고 프로젝트에 devDependencies에 추가하고 팀원 모두가 같은 버전을 사용해야 한다.
@types 의존성은 devDependencies에 포함시켜야 한다.
타입스크립트를 사용할때 세 가지 버전을 고려해야 한다.
하나라도 맞지 않는다면 의존성에 관계없어 보이는 곳에 오류 발생할 가능성이 있다.
라이브러리 업데이트 하면 @types도 업데이트 해야한다.
공개 메서드에 등장한 어떤 형태의 타입이든 export한다.
TSDoc을 이용하면 편집기가 정보를 표시해준다. 다만 주석에 타입 정보를 포함하면 안된다.
this는 다이나믹 스코프로 호출된 방식에 따라 달라진다.
타입스크립트는 자바스크립트를 모델링 하기에 콜백 함수에서 this를 사용한다면 타입 정보를 명시해야 한다.
오버로딩 타입이 작성하기는 쉽지만, 조건부 타입은 개별 타입의 유니온으로 일반화하기 때문에 타입이 더 정확해진다.
각각의 오버로팅 타입이 독립적으로 처리되는 반면 조건부 타입은 타입 체커가 단일 표현식으로 받아들이기 때문에 유니온 문제를 해결할 수 있다.
작성 중인 라이브러리가 의존하는 라이브러리의 구현과 무관하게 타입에만 의존한다면, 필요한 선언부만 추출하여 작성 중인 라이브러리에 넣는 것(미러링)을 고려하는 것도 좋다.
타입 선언을 테스트하기는 어렵다.
타입 선언이 예상한 타입으로 결과를 내는지 체크 할 수 있는 방법은 함수를 호출하는 테스트 파일을 작성하는 것이다.
타입 관련된 테스트에서 any를 주의해야 한다. 더 엄격한 테스트를 위해 dtslint도구가 있다.