타입스크립트 강의를 듣다가 자바스크립트의 타입을 엄격하게 체킹을 하는게 타입스크립트인데
왜 외부코드를 사용하는 라이브러리에는 별다른 오류를 뿜어내지 않는가? 라는 질문을 들었을때는
뭔가 큰걸 놓치고 있었다는 기분이 들었다. 라이브러리라고 해도 결국 다 자바스크립트 파일이었을텐데..
기본적으로 외부 라이브러리에는 신경을 안쓰이게 되어있었다. 만약에 모든 코드를 TS로 작성하고 타입을
지정해줬어야 했다면 TS를 사용하는 모든 JS개발자는 공중재비를 돌았을 것이다.
tsconfig.json
파일에서
strict : ture
코드를 추가하면 라이브러리도 타입검사가 된다.
그때 타입스크립트 개발자들의 은혜가 나온다
CRA 이나 Next.js 프로젝트를 TS로 생성하면
아무이름.d.ts
파일이 생성되는데 아무이름.d.ts 파일은 직접 생성할 수도 있고. JS파일을 TS에게 설명해주는 파일이다.
myJsCode.js라는 라이브러리 파일이있고 그 내부가
funcution add(value1, value2){
return value1 + value2
}
//
//
// 그리고 대충 몇만줄 되는 코드들
//
//
처럼 되어있다면 myJsCode.js 라는 파일이 거대해서 도저히 TS화 시킬수 없을때 유용할것 같다.
add라는 함수가 필요하다고 가정하면 myJsCode.d.ts파일을 생성하여
declare module "myJsCode" {
function add(value1 : number, value2 : number) : number
//필요하다면 다른 라이브러리 내부 함수
}
위와 같이 함수를 설명해주면 add함수가 들어있는 myJsCode는 여전히 JS 파일이지만
TS프로젝트 내부에서도 오류를 방지하면서 사용할 수 있다!
기본적으로 TS는 라이브러리의 파일까지 체크하진 않지만 라이브러리의 코드들까지 타입체킹을 하여
개발자경험을 높이기 위해 사용할 수 있겠다.