"Module 'name'(모듈 '이름')이(가) 입력되지 않은 모듈로 확인됩니다.." 사용자 지정 TypeScript 정의 파일을 작성할 때
TypeScript 정의를 찾을 수 없습니다.@type/{name}
설치된 NodeJS 패키지 중 하나에 대해 다음을 작성하려고 시도합니다.d.ts
파일을 제출하고 파일을 넣습니다.{project root}\typings
폴더.이것이 제가 하는 거죠.
// My source code: index.ts
import Helper from 'node-helper-lib';
// My definition: \typings\node-helper-lib.d.ts
declare....(something else)
declare module 'node-helper-lib' {
class Helper { ... }
export = Helper;
}
그러나 Visual Studio Code는 이 오류를 계속 발생시켜 아래에 빨간색 선을 둡니다.declare module 'node-helper-lib'
:
[ts] 확대에서 모듈 이름이 잘못되었습니다.'node-helper-lib' 모듈은 '{project path}\node_modules\node-helper-lib\index.js'에서 유형 없는 모듈로 확인되며, 이 모듈은 증강할 수 없습니다.
도서관은 타이핑이 안 되어 있어서 타이핑을 추가해도 되는 게 아닌가요?
업데이트:
사용 중인 항목
- 타입스크립트: 2.1.4
- 비주얼 스튜디오 코드 : 1.9.1
- 노드 JS: 6.9.4
- 윈도우 10 x64
실제 해결책은 @paleo가 @hirikarate의 답변에서 언급한 것입니다.
모듈 신고 안에 수입 신고를 해야 합니다.
예:
declare module 'node-helper-lib' {
import * as SomeThirdParty from 'node-helper-lib';
interface Helper {
new(opt: SomeThirdParty.Options): SomeThirdParty.Type
}
export = Helper;
}
몇 번의 시행착오 끝에, 저는 그것을 발견했습니다.augmentation
"다른 모듈 선언이 있는 동일한 파일의 모듈을 declaring한다."를 의미합니다.
따라서 우리가 비타입 서드 파티 자바스크립트 라이브러리에 대한 정의 파일을 작성하려면 하나만 있어야 합니다.declare module 'lib-name'
해당 파일에서 'lib-name'은 라이브러리 이름과 정확히 일치해야 합니다(해당 패키지에서 확인 가능).json, "이름" 속성).
반면 타사 라이브러리에 이미 정의 파일이 있는 경우 .d.ts
포함된 기능을 확장한 다음 추가 정의를 작성하는 다른 파일에 넣을 수 있습니다.이를 가리킵니다.augmenting
.
예를 들어,
// These module declarations are in same file, given that each of them already has their own definition file.
declare module 'events' {
// Extended functionality
}
declare module 'querystring' {
// Extended functionality
}
declare module '...' { ... }
누군가가 같은 질문을 할 때를 대비해서 발견물을 여기에 둡니다.그리고 제가 놓친 부분이 있다면 수정 부탁드립니다.
문제는 제가 모듈을 A/S로 선언하려고 했다는 것입니다..ts
파일. 로 바꿨습니다..d.ts
그리고 모든게 잘 작동했습니다.
저도 그 오류 메시지를 받고 있었습니다.문제는 모듈 선언이 포함된 기존의 타입 정의 파일에 다른 모듈을 선언하려고 했다는 것입니다.새 모듈 선언을 새 파일로 옮긴 후 오류가 사라졌습니다.
저의 경우 npm 'node-apple-receipt-verify' 패키지에서 발생했습니다.
Invalid module name in augmentation. Module 'node-apple-receipt-verify' resolves to an untyped module at '/node_modules/node-apple-receipt-verify/index.js', which cannot be augmented.ts(2665)
작동하는 유일한 솔루션은 다음과 같이 설치하는 것입니다.
npm install --save-dev @types/node-apple-receipt-verify
언급URL : https://stackoverflow.com/questions/42388217/having-error-module-name-resolves-to-an-untyped-module-at-when-writing-cu
'it-source' 카테고리의 다른 글
파이썬 셸에서 pyspark 가져오기 (0) | 2023.10.23 |
---|---|
컴파일러는 무한 루프를 제거할 수 있습니까? (0) | 2023.10.23 |
C++의 Mariadb Kerberos 인증 (0) | 2023.10.23 |
jQuery Mobile:동적으로 추가되는 컨텐츠의 마크업 향상 (0) | 2023.10.23 |
ui-view? angular ui 라우터를 다시 로드하지 않고 $stateParams를 업데이트하려면 어떻게 해야 합니까? (0) | 2023.10.23 |