2017-06-28 1 views
1

Die Aussage

x = $('#msgBox_' + scope.boxId).position().left; 

erzeugt ein

error TS2304: Cannot find name '$'

obwohl jquery und @types im node_modules Ordner installiert werden.

Mein tsconfig.json sieht wie folgt aus:

{ 
    "compilerOptions": { 
    "module": "commonjs", 
    "target": "es5", 
    "sourceMap": true, 
    "moduleResolution": "node", 
    "declaration": true 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

, wie ich das beheben kann?

+1

Wie greifen Sie in Ihrem Code auf '$' zu? Als globale Variable? –

+0

Könnten Sie bitte Ihre tsconfig.json hinzufügen? – OctoD

+0

Versuchen Sie, den Include-Teil zu entfernen. – OctoD

Antwort

4

Versuchen Sie zu:

import * as $ from 'jquery'; 

an der 1 Zeile? Das sollte funktionieren. Sie sollten sich die es6 Module und ts Module genauer ansehen, um zu erfahren, wie Sie das modulare System es6 nutzen können. Auch d.ts Dateien ...

Dieses hilfreich sein sollte: https://www.typescriptlang.org/docs/handbook/modules.html

+0

in der ersten Zeile der Datei? – user1934212

+0

Die, wo Sie jquery verwenden. –

+0

Aufgrund der aktuellen tsconfig.json sollte dies nicht erforderlich sein. Jquery ist auch als globale Variable definiert. Sie müssen sie nur importieren, wenn das Flag "isolatedModules" wahr ist. – OctoD

1

stellte sich heraus, mir fehlte die "@ Typen/jquery" node-Modul, das eine Definition von "$" enthält. Sobald ich "@ types/jquery": "^ 3.2.5" in die Liste von "devDependencies" in meinem Paket.json eingefügt und über "npm install" neu installiert habe, hat alles gut funktioniert.

Verwandte Themen