2016-11-11 2 views
0

У меня есть плагин JQuery (mixItUp), который я пытаюсь использовать с TypScript, который не имеет собственного * .d.ts файла.Использование плагинов JQuery с машинописным текстом

Как я могу заставить его работать со машинописью?

Я сделал свой собственный mixItUp.d.tds файл со следующим содержанием:

interface JQuery 
{ 
    mixItUp():any; 
} 

В модуле, который я пытаюсь использовать mixItUp в, я использую следующий код:

$('#mySelector').mixItUp(); 

Он компилируется отлично, и я получаю intellisense для mixItUp, поэтому каким-то образом он взял файл mixItUp.d.ts без ссылки на него.

В html, я загружаю jquery, а затем библиотеку mixItUp non-typescript (Pure js) перед этим модулем, поэтому я знаю, что как jquery, так и mixitup действительно существуют в этот момент времени.

Однако, когда я загрузить страницу, я получаю следующее сообщение об ошибке:

$(...).mixItUp is not a function(…) 

Большинство гидов я нахожу, кажется, использует то, что я понимаю, что старый способ ссылки * .D .ts файлов.

Может кто-нибудь объяснит, как правильно использовать плагины JQuery с машинописным текстом, а также, если возможно, как ссылаться на нестрочные библиотеки (я предполагаю, что техника будет аналогичной).

Спасибо.

+0

Является mixItUp Javascript файл на странице? –

+0

@ Radio - да. Я отредактировал мой вопрос, чтобы было ясно, что это была библиотека «Pure js», о которой я говорил. – Steviebob

+0

Не уверен, что это поможет, посмотрите, можете ли вы воспроизвести свою проблему здесь: https://jsfiddle.net/dmqr7szq/ – skav

ответ

0

Если это происходит во время выполнения, это скорее всего не вызвано TypScript, поскольку TS просто компилируется в JS. Поскольку сам TS не знает о вашей библиотеке и только получает информацию об этом своим интерфейсом, он компилирует этот вызов как есть (что можно проверить, просто просмотрев вывод в консоли разработчика или аналогичный).

Поэтому убедитесь, что mixItUp загружена правильно, прежде чем ваш код выполняется (но после того, как JQuery), и он должен работать нормально (при условии, что версия JQuery вы используете поддерживается плагином)

+0

, если я поместил строку $ ('# mySelector'). MixItUp(); прямо на странице, он загружается отлично, однако, когда я прокомментирую это и раскомментирую тот, что есть в моем .ts-файле, я получаю сообщение об ошибке. Возможно, если кто-то может объяснить, как вообще вносить/ссылаться на библиотеку, отличную от машинописных, это может привести к ответу? – Steviebob

+0

Существует множество факторов, которые могут повлиять на результат здесь. Было бы хорошо, если бы вы могли предоставить дополнительную информацию о том, как вы создаете TS, а затем включите JS-файл на свою страницу. Содержимое страницы (или, по крайней мере, часть, в которую включены файлы JS), также поможет. – Riiverside

+0

Как правило, при добавлении JS-библиотек в файлы TS вообще нет волшебства. На самом деле вам даже не нужно ничего особенного делать. TS компилируется в JS и полностью совместим с ним. Вы можете добавить самодельные типизации в свой проект (как и вы), чтобы получить преимущество от завершения кода и проверить время компиляции, если ваш код правильно использует библиотеку. Кроме этого, это совершенно необязательно. – Riiverside

Смежные вопросы