in meinem TypeScript-Code Ich möchte ein NPM-JavaScript-Modul einschließen, für das es keine Typisierung gibt.Typoskript: Verwendung der lokalen Deklarationsdatei für das npm-Modul
import createPersist = require('vuex-localstorage');
Denn das von der Compiler beschwert sich:
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.
Eine Möglichkeit, dies zu lösen, ist "noImplicitAny"
-false
in meinem tsconfig.json
Einstellung. Aber das will ich nicht. Ich möchte wissen, was nicht mehr überprüft wird.
Also schrieb ich eine minimale Typdeklaration für vuex-localstorage
, die ich in meinem Projektverzeichnis gelegt:
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;
Allerdings habe ich immer noch die gleichen Fehler. Ich habe mehrere Dinge ausprobiert, damit der TypeScript-Compiler meine Typdeklarationsdatei erkennt, aber nichts funktioniert.
Also, wie mache ich das?
Das hat es geschafft! Vielen Dank – jsf