TypeScript 지원하는 NodeModule 사용하는 방법

less than 1 minute read

@type 지원 nodemodule이 없을 경우

예를 들어 Vueper Slides의 module은 @type을 지원을 하지 않는다.

그렇기 때문에 Vue+TypeScript에서 사용 시 에러가 발생한다.

Could not find a declaration file for module 'vueperslides'.
'/Users/r2fresh78/workspace/kt/sw_architecture/developer-network/ken/ken-fe/node_modules/vueperslides/dist/vueperslides.common.js' implicitly has an 'any' type.
Try `npm install @types/vueperslides` if it exists or add a new declaration (.d.ts) file containing `declare module 'vueperslides';

또는 parameter에 타입을 any로 하지 않으면 또한 아래와 같은 에러도 발생한다.

Parameter 'data' implicitly has an 'any' type.

해결 방법

해결 방법은 tsconfig.json의 noImplicitAny의 값을 아래와 같이 수정해 주면 된다.

"noImplicitAny": false

이렇게 하면 에러가 발생하지 않고, 개발서버를 돌리고 빌드도 가능하다.

혹시 이렇게 하기 싫으면 직접 @type에 맞는 모듈을 만들어도 된다.^^

참고

  • https://stackoverflow.com/questions/47848778/parameter-implicitly-has-an-any-type/47848779
  • https://stackoverflow.com/questions/42987268/is-there-any-way-to-get-warnings-not-errors-for-noimplicitany-noncompliance
  • https://medium.com/@amandeepkochhar/typescript-error-could-not-find-a-declaration-file-for-module-xyz-dfbe6e45c2bd
  • https://stackoverflow.com/questions/41292559/could-not-find-a-declaration-file-for-module-module-name-path-to-module-nam