기술/TypeScript
[에러] typescript import 오류 : Could not find a declaration file for module 모듈에 대한 선언 파일을 찾을 수 없습니다.
빔네모
2024. 3. 18. 11:25
Could not find a declaration file for module 'module-name'.
Could not find a declaration file for module (모듈에 대한 선언 파일을 찾을 수 없습니다) 문제 발생
구글 스프레드시트를 연동하는 라이브러리 사용중 다음과 같은 에러가 발생했다.
자바스크립트만 지원하는 npm 모듈을 TypeScript에서 사용할 때 발생하는 오류이다.
npm 모듈 개발자가 TypeScript 타입을 지정하지 않고 자바스크립트만 지원하는 npm 모듈을 만든 경우 TypeScript에서 사용할 때 오류가 발생한다.
해당 라이브러리가 타입 정의를 지원할 경우 오류코드에 나와있는 것처럼 @types/google-spreadsheet 를 설치해도 해결되지만, 찾아보니 구글시트 라이브러리는 타입을 따로 지원해주지 않는 것 같다.
그렇다면 다음과 같은 방법으로 해결해보자.
해결방법
// src/types/index.d.ts
declare module 'module-name'
타입을 정의하는 폴더에 d.ts 파일을 만든 후 다음과 같이 선언해준다.
//import { GoogleSpreadsheet } from 'google-spreadsheet'
//from 뒤에 적힌 라이브러리명을 그대로 가져와서 적어주면 된다.
declare module 'google-spreadsheet'
만약 저렇게 적용했는데도 오류가 발생한다면 tsconfig.json에 추가로 설정해준다.
(tsconfig.node.json에도 오류가 나서 아래와 동일하게 추가해줬더니 해결되었다.)
{
"compilerOptions": {
"typeRoots" : ["./types", "./node_modules/types"]
},
}
타입루트는 본인이 만든 폴더명으로 작성해주면 된다.