Установите jQuery 2.2.4 для TypeScript 1.8

0

Я установил Angular 2 (RC4) с угловым cli и использовал [email protected].

Я установил jQuery с

npm install [email protected] --save

добавляет "jquery": "^2.2.4" в package.json

и типизация с

typings install dt~jquery --global --save

добавляет "jquery": "registry:dt/jquery#1.10.0+20160704162008" в typings.json (Примечание: это типизация для релизов 1.x и 2.x!)

Когда я теперь использую import $ from 'jquery' или import * as $ from 'jquery' в любом из моих файлов TypeScript, tsc возвращает:

[ts] Не удается найти модуль jquery.

Может ли кто-нибудь сказать мне, почему? Что я делаю не так?

  • 0
    Это не относится к вашему вопросу, но вы уверены, что вам нужен jQuery с Angular2? Это не очень хорошо работает вместе.
  • 0
    Да, мне нужна одна внешняя зависимость, которая опирается на jQuery. Это плохо, но в универсуме ng2 в настоящее время не так много проектов, которые я могу использовать. Но спасибо, что упомянул это здесь.
Теги:
typescript-typings

2 ответа

1

Вы выбрали jQuery DefinitelyTyped?

http://www.nuget.org/packages/jquery.TypeScript.DefinitelyTyped/

  • 0
    Да, но я использовал наборы напрямую, которые будут включать их в папку моего проекта.
0

Я решил это без ракетостроения, просто делай это по-старому. Кажется, что RC4 имеет определенную проблему, правильно разрешая типизацию. Но поскольку я разработчик программного обеспечения, и все связанные с угловым "материалом RC" в последний раз сильно меняются, трудно решить это для любого RC, поэтому я решил сделать это немного старой школы, например:

declare var $: any;                 // <-- yep, that it
declare var FlipClock: any;         // <-- same here

@Component({
  selector: 'my-component',
  moduleId: module.id,
  templateUrl: './template.html',
  styleUrls: ['./styles.css']
})

export class MyComponent implements AfterViewInit {
  @ViewChild('flipclock') flipClock: ElementRef;
  errors: any;

  constructor() {
  }

  ngAfterViewInit() {
    $(this.flipClock.nativeElement).FlipClock({  // <-- we must make sure that
      clockFace: 'TwentyFourHourClock'           //     at runtime $ and FlipClock
                                                 //     exists
    });
  }
}

Чтобы обеспечить jQuery и FlipClock во время выполнения, нам просто нужно добавить скрипты в наш index.html:

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My ng2-rc4 app</title>
    <base href="/">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" href="vendor/flipclock/compiled/flipclock.css">
    <link rel="stylesheet" href="app/main.css">
  </head>

  <body>
    <my-app>Loading ...</my-app>

    <script src="/vendor/jquery/dist/jquery.min.js"></script>
    <script src="/vendor/flipclock/compiled/flipclock.min.js"></script>
  </body>
</html>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню