inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전 프로젝트로 배우는 타입스크립트

외부 라이브러리 모듈화 방법 정리

d.ts 파일 질문입니다.

해결된 질문

481

강듀

작성한 질문수 5

3

안녕하세요! 강의 잘 듣고 있습니다!

서드파티 라이브러리들은 타입스크립트 지원을 위해 js 파일을 ts파일로 바꾸는 것이 아닌 index.d.ts 파일을 따로 만들어주는 형태로 하던데, d.ts 파일로 타입 정의를 해주는 것과 현재 최종 프로젝트처럼 js 파일 자체를 ts 파일로 바꿔주는 건 어떨 때 구분되는 것이고 어떤 차이가 있는걸까요?

감사합니다!

+ 추가) 나름 고민을 해보다가 아래와 같은 생각을 해봤는데 이렇게 이해해도 될까요?

라이브러리의 경우, 라이브러리를 사용하는 개발자들 모두가 타입스크립트를 사용하는 것이 아니기 때문에 기본적으로 js 기반으로 작성하고 추가적으로 타입스크립트 지원을 해주기 위해 d.ts 파일로 타입을 선언해준다.

반면 프로젝트의 경우, 팀 내에서 모두 타입스크립트를 사용하기로 한 것이므로 굳이 js와 d.ts 파일로 분리하지 않고 ts 파일로 진행한다.

의견 주시면 감사하겠습니다!

아 그리고 좋은 강의 정말 감사합니다 :) 남은 연말 잘 마무리하시고 새해 복 많이 받으세요!

typescript es6

답변 1

1

캡틴판교

안녕하세요 강듀님, 제가 답변이 조금 늦었네요 :) 좋은 질문 주셨어요. 그리고 보니까 벌써 스스로 결론까지 잘 정리하신 것 같네요! :) ts파일과 d.ts 파일의 가장 큰 차이점은 d.ts 파일에는 타입 선언 코드만 들어갈 수 있다는 점입니다. 그리고 강의에서 안내드린 것처럼 d.ts 파일은 JS 기반의 라이브러리를 타입스크립트에서 인식하기 위해 필수로 선언되어야 하는 파일이기도 합니다. 프로젝트 단위 개발을 하실 때 컨벤션을 어떻게 가져가시느냐의 차이인 것 같은데 일반적으로 애플리케이션을 구현하는 관점에서는 d.ts로 다 분리해서 선언하지 않고 보통 ts 파일에 로직과 함께 사용하거나 특정 ts 파일에 타입을 몰아 넣기도 합니다 :)

강듀님의 궁금증 해소에 도움이 되었는진 모르겠네요 :) 몇 일전에 첫 수강평 남겨주시고 응원도 많이 해주셨던데 정말 감사드립니다 :) 강듀님도 남은 연말 즐겁게 보내세요 :)

-

0

137

1

[오류문의] import 에러

0

271

1

api가 중단된 건에 대하여..

1

379

2

프로젝트 완성본 github에 어디있나요?

1

348

2

https://api.covid19api.com/summary에 있는 원격 리소스를 차단

3

783

2

d.ts 컴파일 시 에러 질문 드립니다.

1

619

2

chartjs 타입시.. 직접 declare module chart.js로 하게 되면 내부의 구조를 모를 것 같은데요

1

594

2

COVID19 API 미작동(404) 질문

1

826

2

innerText부분 오류 문의.

1

681

2

Total Recovered가 화면에 0으로 나옵니다.

1

403

1

강의 내용 질문입니다.

2

443

1

요즘 바벨 사용 여부가 궁금합니다.

1

499

1

프로젝트 내 특정 파일만 Typing

1

571

1

소스질문

1

603

1

추후 강의에 관한 질문

2

402

1

rootdir, include 차이가 궁금합니다

1

675

1

Uncaught ReferenceError: exports is not defined 에러 해결

1

1832

1

function $(selector) 관련 질문 드립니다.

1

310

1

Uncaught ReferenceError: exports is not defined

1

469

1

웹팩 에러 문의

1

849

2

innerHTML optional 체이닝

2

1922

1

화살표 함수 문법 소개 글 링크가 잘못되어 있습니다.

1

234

1

실전 적용 관련 질문 입니다.

1

301

1

모듈 알리아스(as) 질문 드립니다.

1

377

1