2016-09-21 2 views
2

Я не могу интегрировать типизацию jQuery в проект anguler2-seed.Как импортировать jQuery для набора угловых семян?

В моем компоненте я использую JQuery, как это:

declare let $: any; 

export class LeafletComponent implements OnInit { 

    ngOnInit(): void { 
     this.popup = $(this.element.nativeElement).find('#leaflet-popup'); 
    } 
} 

Это прекрасно работает, но оставляет меня с нетипизированным $ объектом. Я предпочел бы иметь что-то вроде:

declare let $: JQueryStatic; 

Я установил @types/jquery с НПМ и пытался использовать JQueryStatic. Я также пробовал все виды импортных заявлений, чтобы получить объект $. Ничего не получилось.

Далее @types/jquery только проецирует jQuery 2.x. Но я использую jQuery 3.x.

Любые идеи о том, как получить подходящие типы для jQuery, предпочтительнее для версии 3.x?

ответ

0

Эй, я столкнулся с тем же вопросом. Я нашел решение, дайте мне знать, если это поможет.

в tools/config/project.config.ts

добавьте в конструктор:

this.SYSTEM_CONFIG_DEV.paths[ 'jquery' ] = 
 
\t `${this.APP_BASE}node_modules/jquery/dist/jquery`; 
 

 
this.SYSTEM_BUILDER_CONFIG.packages[ 'jquery' ] = { 
 
\t main: 'jquery.js', 
 
\t defaultExtension: 'js' 
 
};

Тогда все, что вам нужно сделать, это добавить import 'jquery'; к app/app.module.ts

У меня также есть "@types/jquery": "^2.0.32" и "jquery": "^3.1.1" в моем пакете.json.

Мне не нужно было ничего объявлять, оно просто работает. Я надеюсь, что это помогает вам!

0

OP - с проектом angular2 seed, все, что вам нужно сделать, это импортировать его вот так.

import * as $ from 'jquery';

Надеюсь, что это поможет.

+0

не могли бы вы уточнить? – manetsus