반응형
타이프스크립트:npm 모듈의 로컬 유형 선언 파일 사용 방법
TypeScript 코드에 입력이 없는 NPM JavaScript 모듈을 포함시키고 싶습니다.
import createPersist = require('vuex-localstorage');
이 때문에 컴파일러는 다음과 같이 불평합니다.
error TS7016: Could not find a declaration file for module 'vuex-localstorage'. '<path>\node_modules\vuex-localstorage\dist\index.js' implicitly has an 'any' type.
이 문제를 해결할 수 있는 한 가지 방법은 설정입니다."noImplicitAny"
로.false
내 안에서tsconfig.json
하지만 이건 원하지 않아나는 무엇이 더 이상 타이프 체크되지 않았는지 알고 싶다.
그래서 저는 최소형 선언문을 작성했습니다.vuex-localstorage
프로젝트 디렉토리에 저장했습니다.
interface PersistOptions {
namespace?: string;
initialState?: any;
provider?: any;
serialize?: (data:any) => string;
deserialize?: (str:string) => any;
expires?: number;
merge?: (args:any[]) => any;
reducer?: (state:any, paths:string[]) => any;
paths?: string[];
}
declare function createPersist(options: PersistOptions): any;
export = createPersist;
하지만 나는 여전히 같은 오류를 가지고 있다.TypeScript 컴파일러가 내 타입 선언 파일을 인식하도록 몇 가지 작업을 시도했지만 아무 일도 일어나지 않았습니다.
그럼 어떻게 해야 하죠?
컴파일러가 작성한 내용이 해당 모듈을 위한 것임을 알 수 있도록 도와야 합니다.
이것을 시험해 보세요.
declare module 'vuex-localstorage' {
interface PersistOptions {
namespace?: string;
initialState?: any;
provider?: any;
serialize?: (data: any) => string;
deserialize?: (str: string) => any;
expires?: number;
merge?: (args: any[]) => any;
reducer?: (state: any, paths: string[]) => any;
paths?: string[];
}
function createPersist(options: PersistOptions): any;
export = createPersist;
}
이 선언 파일이 tsconfig.json에 포함되어 있는지 확인하는 것을 잊지 마십시오.
언급URL : https://stackoverflow.com/questions/42559742/typescript-how-to-use-local-type-declaration-file-for-npm-module
반응형
'programing' 카테고리의 다른 글
Vuex 변환기에서 예외 처리 (0) | 2022.08.30 |
---|---|
인증에 대한 Vue/Vuex 상태 관리 베스트 프랙티스 (0) | 2022.08.30 |
크로스 플랫폼 소켓 (0) | 2022.08.23 |
Vuetify 텍스트 필드에서 레이블의 위첨자를 지정하는 방법 (0) | 2022.08.23 |
malloc 동안 커널에서 무슨 일이 일어나나요? (0) | 2022.08.23 |