Typescript-Compilerfehler beim Importieren der JSON-Datei
Also der code ist einfach:
Anrufe.json
{"SERVER":{
"requests":{
"one":"1"
}
} }
Datei.ts
import json = require('../static/calls.json');
console.log(json.SERVER);
den erzeugten javascript-korrekt ist und bei der Ausführung der node-js-server, die Konsole log-json.SERVER gibt ' {- Anfragen: { eins: '1' } }', wie es sollte.
Den typescript-compiler (commonjs) allerdings irgendwie nicht besonders wie diese situation wirft: "Cannot find module '../static/Anrufe.json'".
Natürlich versuchte ich das schreiben ein .d....ts-Datei, wie hier:
declare module '../static/calls.json'{
var exp:any;
export = exp;
}
diese dann natürlich wirft: "Ambient-Modul-Erklärung angeben können relative Modul-name".
Ich habe auch versucht verschiedene Varianten, wie:
declare module 'calls.json' {
import * as json from '/private/static/calls.json';
export = json;
}
dann erforderlich ist:
import json = require('calls.json');
Keiner richtig arbeiten und haben Ihre eigene kleine compiler-Fehler 🙂
Möchte ich eine externe .json-Datei, weil ich mit commonjs serverside und amd) und ich möchte eine einzelne Datei für das laden von Konstanten.
InformationsquelleAutor der Frage Ken | 2015-10-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
var
stattimport
.Die Sie laden, eine JSON-Datei, nicht ein Modul, so
import
sollte nicht verwendet werden, ist in diesem Fall. Wennvar
verwendet wird,require()
behandelt wird wie eine normale Funktion wieder aufnehmen.Wenn Sie eine Node.js definition, sollte alles einfach funktionieren, sonst
require
müssen definiert werden.InformationsquelleAutor der Antwort thoughtrepo
Andere Lösung ist, zu ändern
data.json
zudata.ts
- und export, wie dies- und importieren wie man es erwarten würde:
InformationsquelleAutor der Antwort phi
Diese können auch erfolgen, indem
import
- Anweisung, wenn mit webpack v2 die ist schon gepackt mit json-loader.Auch, in Ihren
typings.d.ts
- Datei fügen Sie die folgende Platzhalter-Modul zu vermeiden, Typoskript Fehler sagen:Cannot find module
Für alle interessierten in
async
Einfuhren, überprüfen dieser Artikel von 2ualityInformationsquelleAutor der Antwort sabithpocker
TS 2.9 zusätzliche Unterstützung für gut getippt json importiert. Nur hinzufügen:
in Ihrem
tsconfig.json
oderjsconfig.json
. Importiert nun wie:und
sollte aufgelöst werden, und es müssen angemessene Testungen zu!
InformationsquelleAutor der Antwort Matt Bierner
Als der Typoskript 2.9 können Sie importieren JSON-Datei nativ ohne zusätzliche hack/loader benötigt.
Folgende Auszug ist kopiert vom link oben.
./src/settings.json
./src/foo.ts
InformationsquelleAutor der Antwort doomleika
InformationsquelleAutor der Antwort user2112373