typescript

typescript에 type이 정의되지 않은 module(모듈) 사용법

직장인코딩 2022. 10. 13. 14:38
반응형

 

이번에 typescript를 사용중 module에 type 선언이 안되어 있어서 사용할 수 없는 경우가 있었다.

 

나는 이번에 typeit이라는 모듈을 사용하려고 하였으나 typeit은 typescript로 정의가 되지 않은

 

모듈이었고 이것을 해결하기 위해 google에 검색을 하였다.

 

https://velog.io/@yyeonjju/TypeScript-types-%EC%97%86%EB%8A%94-%EB%AA%A8%EB%93%88-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95#-2-node_modules-%EC%99%80-%EB%8F%99%EC%9D%BC%ED%95%9C-%EA%B2%BD%EB%A1%9C-%EC%9C%84%EC%B9%98%EC%97%90-types%EB%9D%BC%EB%8A%94-%ED%8F%B4%EB%8D%94%EB%A5%BC-%EB%A7%8C%EB%93%A0%EB%8B%A4

출처는 여기서 가져왔기 때문에 적겠습니다. 정말 친절하게 설명이 되어 있네요.

 

역시나 import가 되지 않습니다.

 

우리는 그러면 밑에서 두번째 줄

 

'declare module 'typeit-react';'을(를) 포함하는 새 선언(.d.ts) 파일 추가

 

 

이 부분으로 해결을 해볼 것인데요.

 

일단 tsconfig.json 파일로 들어 가줍니다.

위와 같은 내용 들이 보일텐데

 

  "typeRoots": ["./node_modules/@types", "./types"],
 

이것을 추가해줍니다.

 

type을 정의하는 경로를 적는 것입니다.

 

./node_modules/@types는 우리가 npm을 통해 다운로드 받은 모듈이 다운로드 되는 곳으로

 

type이 정의된 모듈들은 자동으로 저 경로를 통해 type추정을 합니다.

 

저희는 ./types 라는 폴더를 만들어서 type 추적을 해보겠습니다.

 

일단 tsconfig.json과 같은 경로에 types라는 폴더를 만들어 줍니다.

 

이런식으로

 

그리고 저는 typeit-react라는 모듈을 사용할 꺼기 때문에

 

types 밑에 사용할 모듈의 이름으로 폴더를 만들어 줍니다.

 

그리고 그 밑에 index.d.ts라는 파일을 만들어 줍니다.

 

이 파일에서 모듈 선언을 해줍니다.

 

이런 식으로 제가 선언할 모듈의 이름을 적어줍니다.

 

그리고 다시와서 확인해보면

 

사용을 할 수가 있습니다.

 

이왕이면 모듈을 분석해서 본인이 type을 지정해주는 것이 좋지만

 

저 같은 초짜들은 그런거 하기 힘듭니다.

 

야매를 택했습니다!

 

반응형