2016-06-03 5 views
1

Ich versuche, jquery in meinem angular2-Projekt zu verwenden, das mit Webpack erstellt wird. bekam ich den webpack angular2 Starter-Kit von hier: hereJquery mit Typescript: Eigenschaft 'css' existiert nicht für den Typ 'ElementFinder'

aber ich kann nicht herausfinden, wie diese Fehler loszuwerden, wie mein Build, weil von ihnen versagt.

Das ist mein typings.json

 { 
     "globalDependencies": { 
     "angular-protractor": "registry:dt/angular-protractor#1.5.0+20160425143459", 
     "angular2-beta-to-rc-alias": "file:./node_modules/@angularclass/angular2-beta-to-rc-alias/src/beta-17/typings.d.ts", 
     "core-js": "registry:dt/core-js#0.0.0+20160317120654", 
     "hammerjs": "registry:dt/hammerjs#2.0.4+20160417130828", 
     "jasmine": "registry:dt/jasmine#2.2.0+20160505161446", 
     "jquery": "github:DefinitelyTyped/DefinitelyTyped/jquery/jquery.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd", 
     "node": "registry:dt/node#6.0.0+20160514165920", 
     "selenium-webdriver": "registry:dt/selenium-webdriver#2.44.0+20160317120654", 
     "source-map": "registry:dt/source-map#0.0.0+20160317120654", 
     "uglify-js": "registry:dt/uglify-js#2.6.1+20160316155526", 
     "webpack": "registry:dt/webpack#1.12.60707" 
     } 
    } 

Ich habe versucht:

typings install dt~jquery --global --save 

Wie gut, aber der Fehler ist immer noch hier:

 Property 'css' does not exist on type 'ElementFinder'. 

Und:

 Subsequent variable declarations must have the same type. Variable '$' must be of type 'cssSelectorHelper', but here has type 'JQueryStatic'. 
+0

haben Sie es gelöst? –

Antwort

1

Sie benötigen jQuery Typisierungen zu definieren, ich verwende:

https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/7de6c3dd94feaeb21f20054b9f30d5dabc5efabd/jquery/jquery.d.ts

Und es funktioniert gut für mich.

Ich hatte das gleiche Problem und ich musste this Typings selbst herunterladen und es irgendwo in meine Ordner legen.

Dann in Ihrem tsconfig.js

"files": [ 
    "./src/app/**/*.ts", 
    "./src/platform/**/*.ts", 
    "!./node_modules/**", 
    "./src/custom-typings.d.ts", 
    "./src/jquery-typings-custom/index.d.ts", !!!!!!! This is the folder where I put those typings downloaded from the url 
    "./src/vendor/slick/slick-typings.d.ts", 
    "./typings/index.d.ts" 
    ], 

Und dann, in einem Ihrer Komponenten (wahrscheinlich die eine Wurzel, die normalerweise app.ts) Sie tun sollten:

 declare var jQuery : JQueryStatic; 

Und Anstatt $ zu verwenden, sollten Sie anfangen, jQuery zu verwenden (Es gibt auch eine Problemumgehung für dieses Problem, aber das war mir egal).

Verwandte Themen