5

in order to import jquery in an angualr4 project i do the following:

npm install --save jquery
npm install --save-dev @types/jquery

in the app.component.ts

import $ from 'jquery';
or 
import * as $ from 'jquery';

when run "ng serve" i got these errors

ERROR in C:/jquery-angular/jqueryintegration/node_modules/@types/jquery/index.d.ts (47,40): ',' expected.

ERROR in C:/jquery-angular/jqueryintegration/node_modules/@types/jquery/index.d.ts (2370,40): ',' expected.
.....
.....
.....
ERROR in C:/jquery-angular/jqueryintegration/node_modules/@types/jquery/index.d.ts (4311,85): ';' expected.

ERROR in C:/jquery-angular/jqueryintegration/node_modules/@types/jquery/index.d.ts (4311,92): Expression expected.

ERROR in C:/jquery-angular/jqueryintegration/node_modules/@types/jquery/index.d.ts (4455,1): Declaration or statement expected.

ERROR in C:/jquery-angular/jqueryintegration/node_modules/@types/jquery/index.d.ts (30,45): Generic type 'JQueryStatic<TElement, HTMLElement>' requires 2 type argument(s).
.....
.....
.....
ERROR in C:/jquery-angular/jqueryintegration/node_modules/@types/jquery/index.d.ts (4475,33): Generic type 'PlainObject<T, any>' requires 2 type argument(s).

ERROR in C:/jquery-angular/jqueryintegration/src/app/app.component.ts (2,8): Module ''jquery'' has no default export.

ERROR in C:/jquery-angular/jqueryintegration/src/app/app.component.ts (2,8): Module ''jquery'' has no default export.
webpack: Failed to compile.

my enviroment details:

>tsc --version
Version 2.3.2

>ng --version
@angular/cli: 1.0.3
node: 6.10.2
os: win32 x64

other dependecies:

 "dependencies": {
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "core-js": "^2.4.1",
    "jquery": "^3.2.1",
    "rxjs": "^5.1.0",
    "zone.js": "^0.8.4"
  },
  "devDependencies": {
    "@angular/cli": "1.0.3",
    "@angular/compiler-cli": "^4.0.0",
    "@types/jasmine": "2.5.38",
    "@types/jquery": "^3.2.3",
    "@types/node": "~6.0.60",
    "codelyzer": "~2.0.0",
    "jasmine-core": "~2.5.2",
    "jasmine-spec-reporter": "~3.2.0",
    "karma": "~1.4.1",
    "karma-chrome-launcher": "~2.1.1",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^0.2.0",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "protractor": "~5.1.0",
    "ts-node": "~2.0.0",
    "tslint": "~4.5.0",
    "typescript": "~2.2.0"
  }

Does "import" load javascript file of default or must it be configured in some way?

1

2 Answers 2

15

Try this

import * as $ from 'jquery/dist/jquery.min.js';

Sign up to request clarification or add additional context in comments.

Comments

6

Install jquery package using npm following is the code to install jquery

npm install jquery --save

Add types

npm install --save-dev @types/jquery

Add scripts to angular-cli.json

"apps": [{
  "scripts": [
    "../node_modules/jquery/dist/jquery.min.js", // check your ref path it might be different.
  ],
}]

In component, you need to add

declare var jquery:any;

1 Comment

The whole point of the @types libraries is so you don't have to declare var jquery: any;. The tip about "scripts" is good, but I think there's still something missing here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.