2017-06-06 10 views
1

Ich schreibe eine App in Elektron mit eckigen 4. Ich brauche eine Datenbank und möchte Websql verwenden, aber ich kann keine Möglichkeit finden, Websql Typings zu importieren.eckig 2 websql typings

Ich habe @ types/websql hinzugefügt. In meiner IDE gibt es keine compil Fehler, wenn ich tun:

const db: Database = window.openDatabase('foo', '1.0', 'foo', 2 * 1024 * 1024); 

aber ng serve gibt mir:

Property 'openDatabase' does not exist on type 'Window' 

Ich habe keine Einfuhr spezifisch für @types/websql. Da es kein Modul ist, kann ich es nicht importieren.

Hat jemand eine Idee, wie ich das importieren kann?

+0

Es scheint, wenn ich versuche, mit TSC zu kompilieren, funktioniert es. Also ich denke, das Problem hier ist mit ng-cli ... – ctruchi

Antwort

0

Ok, ich habe die Lösung gefunden.

ng-cli generiert eine tsconfig.app.json mit einer Eigenschaft types auf []. Wenn ich Tsc doc richtig verstehe, verhindert es den Compiler, die typeRoots Eigenschaft zu verwenden.

Durch einfaches Entfernen dieser Eigenschaft kompilieren Sie meinen Code.

0

Wie in https://www.typescriptlang.org/docs/handbook/tsconfig-json.html:

alle sichtbar „@types“ Pakete in Ihrer Zusammenstellung enthalten sind ...

Wenn typeRoots angegeben wird, werden nur Pakete unter typeRoots enthalten sein.

Wenn Typen angegeben sind, werden nur Pakete unter Typen eingeschlossen.

Wenn ich den Typ in ts.config.app wie dieser Konfiguration setzen:

"types": [ 
    "websql" 
] 

es enthält nur die node_modules/@ Typen/websql andere zu ignorieren, die installiert wurden.

+0

Sie sollten überlegen, eine Erklärung mit Ihrer Antwort. Für weitere Informationen lesen Sie bitte: [Wie schreibe ich eine gute Antwort?] (Https://stackoverflow.com/help/how-to-answer) –

+0

Vielen Dank @ MickaëlB. Ich habe die Antwort bearbeitet. – joaoacj