ZeroCho / ts-book

타입스크립트 교과서 소스 코드
35 stars 5 forks source link

[pp.445, 문의 및 제안] baseUrl과 paths로 타이핑 가능 범위 #30

Open wiseguy77 opened 1 year ago

wiseguy77 commented 1 year ago

[p.444 마지막줄 - p.445 2번째 줄] 의 설명과 baseUrl과 paths 사용 시 declare module 블록을 제거해야 한다는 내용으로 미루어 보면,

baseUrl과 paths로 타이핑하기는 결과적으로 스크립트 파일을 사용하게 되는 것이 되므로, 기존 모듈 타입의 확장 또는 확장가능한 모듈 선언 시에는 사용 불가능 하고, 스크립트파일로 새로운 타입 선언을 할 경우에 한해서만 사용할 수 있다 라고 이해하면 될까요?

ZeroCho commented 1 year ago

모듈 선언 시에도 가능하긴 합니다. import 'react-native-scroll-view'같이 모듈명이 있을 때 그 모듈명의 타입을 paths에 적은 파일로 고정하는 옵션입니다. 어차피 그 파일이 react-native-scroll-view를 가리킨다는 것을 옵션에 적어두었으므로 굳이 declare module로 할 필요가 없습니다.

wiseguy77 commented 1 year ago

다음과 같이 이해했는데 확인 좀 부탁드리겠습니다.

  1. import [모듈명] 일때는 [p.320 ,1~13과정]에 다음 2가지 타입 선언 검색이 추가 수행

    프로젝트 내 tsconfig.json의 baseUrl과 paths 설정 경로로 타입 선언 검색
    프로젝트 내 스크립트 파일들에서 declare module을 사용한 타입 선언 검색
  2. import [상대경로 모듈명] 일 때는 [p.322]의 과정으로 타입 선언 검색

ZeroCho commented 1 year ago

네 맞습니다. baseUrl, paths 설정으로 찾는 것은 p320 1\~13과정보다 더 먼저 수행됩니다. declare module로 한 것을 찾는 것은 1~13과정 후에 발생합니다.

wiseguy77 commented 1 year ago

그렇다면 다음 [제안]을 드리고 싶습니다.

[pp.320-322, 6.3절] 또는 [pp.445-447, 10.1.1절] 중 어딘가에 내용에 모듈타입 검색단계가 추가될 수도 있다는 내용이 들어가면 이해하는데 도움이 될 것 같습니다.

답변 고맙습니다^^

ZeroCho commented 1 year ago

지면에 여유가 있으면 추가해보겠습니다!