2015-05-29 3 views
0

Я новичок в машинописи. Я пытался работать с библиотекой jquery-easyui, которая не имеет файла определения d.ts в репозитории DefintelyTyped. У меня нет времени (или навыков), чтобы написать файл d.ts для этой библиотеки. Как я могу использовать это в файле машинописных файлов?Typcript: Как ссылаться на библиотеку jquery-easyui?

В test.ts файл, я пытался делать:

/// <amd-dependency path="libs/easyui/jquery.easyui.min.js"> 
function newUser(){ 
    $('#dlg').dialog('open').dialog('setTitle','New User'); 
    ... etc. 

Но WebStorm сообщает об ошибке на символ "$", как "неразрешенный метода или функции $()". Пробовал заменить amd-зависимость .. со ссылкой .. но все равно не работал. Путь библиотеки правильный. Этот код отлично работает, если я помещаю его в файл .js.

+0

Вы можете просто написать inteface для методов, которые вам нужны. Кроме того, $ является частью jquery.d.ts –

ответ

0

Шаг 1 должен включать файл объявления для jQuery. По крайней мере, вы получите информацию типа для ванильного jQuery. Поместите следующую строку в верхней части ваших файлов JS, которые используют Jquery

/// <reference path='jquery.d.ts' /> 

Далее вы хотите создать файл jquery.easyui.d.ts и добавьте:

interface JQuery { 
    dialog: any; 
} 

Код выше означает, что интерфейс JQuery (первоначально определенный в jquery.d.ts) имеет член, называемый диалогом, и может быть любого типа (в этом случае это функция). Поскольку вы используете any, вы не получаете какой-либо помощи по типу, но по крайней мере теперь он будет компилироваться. Я не знаю, что easyui добавляет к jQuery, но вам нужно будет добавить все новые методы в этот интерфейс.

И, наконец, добавьте еще один комментарий <reference> ниже для jquery.easyui.d.ts. Каждый раз, когда компилятор жалуется на то, что не определено из easyui, добавьте его в файл jquery.easyui.d.ts.

Как только вы освоитесь с синтаксисом, вы можете размножить типы в файле jquery.easyui.d.ts и внести их в определенный проект!

+0

Спасибо ... это сработало! Как вы сказали ... не получив завершение кода intellisense, но по крайней мере я могу использовать эту библиотеку, как обычный javascript. –

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