2016-06-03 5 views
0

Я задаюсь вопросом, как избавиться от ошибок/Машинопись типизации как:машинопись Ошибки: Webpack/Угловые 2/типизации

Property 'modal' does not exist on type 'JQuery'. 

Насколько я знаю, что я правильно установлены последние типизации для JQuery и он определенно находит и использует их (я проверял это). Свойство «модальный» на самом деле функция Я звоню как:

$('#popup').modal(); 
// modal() is part of the Semantic UI library which is available and works in my browser 

Пожалуйста, обратите внимание, я использую последнюю версию типизации v1.0.4, который, кажется, предпочитают использовать globalDependencies вместо типов «окружающей среды». Мой typings.json файл:

{ 
    "globalDependencies": { 
    "core-js": "registry:dt/core-js#0.0.0+20160317120654", 
    "jasmine": "registry:dt/jasmine#2.2.0+20160505161446", 
    "jquery": "registry:dt/jquery#1.10.0+20160417213236", 
    "node": "registry:dt/node#4.0.0+20160509154515", 
    "source-map": "registry:dt/source-map#0.0.0+20160317120654", 
    "uglify-js": "registry:dt/uglify-js#2.6.1+20160316155526", 
    "webpack": "registry:dt/webpack#1.12.9+20160523035535" 
    } 
} 

Есть ли способ, что я могу сказать типизации, что функции, такие как модальный() и многие другие, на самом деле в порядке и не бросать ошибки?

UPDATE: За ответ ниже я решил эти ошибки, добавив следующую строку в файл пользовательских типизации, что я загрузить custom-typings.d.ts

interface JQuery { 
    modal: (cmd?: string, options?: any) => JQuery; 
    dropdown:() => void; 
    checkbox:() => void; 
    calendar: (options?:any) => void; 
} 

Это говорит машинопись, что объект JQuery имеет дополнительные функции, имеющиеся в его распоряжении: modal(), dropdown() и т. д.

Вы заметите, что для моего модального определения я указываю две необязательные переменные, которые могут быть переданы (поскольку это поведение функции Semantic UI modal(), которую я с помощью). Кроме того, функция модальных() возвращает другой объект JQuery рекурсивно, так как реальный человек действует так, а также - что позволяет мне назвать его несколько раз в цепочке:

$('#someId').modal('setting', {autoFocus: true}).modal('show') 
+0

Вы используете amd (Requirejs и т. Д.) Для этого – kwiri

+0

@kwiri Я не уверен, как ответить на ваш вопрос. Я слышал о AMD и RequireJS, но я не совсем уверен, что они делают, или если это что-то связано с Webpack? – FireDragon

ответ

1

нет ничего плохого. Вы получите эту ошибку, потому что modal() не отображается в jquery.d.ts. Чтобы избавиться от этого сообщения об ошибке, см. Converting a jQuery plugin to TypeScript

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