Ich habe ein Projekt mit einem Node JS-Modul innerhalb foo/bar.js
. Jetzt schreibe ich ein TypeScript-Modul in src/mymod.ts
, das foo/bar.js
importieren sollte. Wie schreibe ich eine Deklarationsdatei für foo/bar.js
Modul? Wohin soll die Deklarationsdatei gehen?Deklarationsdatei für verschachtelte Module
Ich habe versucht, eine Vereinbarungsdatei in foo/bar.d.ts
platzieren, aber wenn ich import * as bar from "../foo/bar"
in meinem Typoskript Modul, ich die folgende Fehlermeldung erhalten:
File '/tmp/my_proj/foo/bar.d.ts' is not a module.
Das ist meine tsconfig.json
Datei
{
"compilerOptions": {
"allowJs": true,
"outDir": "./dist/",
"target": "es2017",
"module": "commonjs",
"strictNullChecks": true
},
"include": [
"./src/"
]
}
Dies ist Meine Deklarationsdatei:
// Type definitions for bar
declare module "bar" {
function fun1(n: number) : number;
function fun2(n: number) : number;
function fun3(n: number) : number;
}
Sieht für mich wie 'bar.d.ts' wird nicht ordnungsgemäß deklariert, wenn Sie keine' Export' Anweisungen darin haben, ist es kein Modul, das den Fehler erklären würde - wenn Sie einschließen können die Datei in deiner Frage könnte mir vielleicht helfen. – Gerrit0
@ Gerrit0 vergessen, die Deklarationsdatei hinzuzufügen. Jetzt hinzugefügt, danke –
@ Gerrit0 Also, ich habe es geschafft, dieses Problem zu beheben, indem ich das 'module' Konstrukt lösche und' export' zu der Funktion hinzufüge (ich habe tatsächlich mehrere Funktionen). Ich dachte, ein Modul wurde automatisch exportiert? –