Свойство 'jqGrid' не существует в значении типа 'JQuery'
Я использую Typescript с jqGrid и jQuery.
в следующей строке:
jQuery(this).jqGrid('editGridRow', rowid, {
...
Я получаю сообщение:
свойство ' jqGrid 'не существует для значения типа'JQuery'.
любые идеи о том, как исправить эту проблему?
2 ответов
Я полагаю, что вы используете С помощью jQuery.машинописный текст.DefinetlyTyped Пакет NuGet.
в этом случае добавить файл ~ / Scripts/typings / custom.д.ТС следующего содержания:
/// <reference path="jquery/jquery.d.ts"/>
interface JQuery { jqGrid: any; }
обновление: Вышеуказанное решение является общим и работает во всех случаях. Лучшее решение-это...
установить jqgrid.машинописный текст.DefinitelyTyped Пакет NuGet.
проблема в том, что jQuery grid является плагином. Похоже, у вас есть файл определения для библиотеки JQuery, но не для плагина jQuery Grid. Я проверил https://github.com/borisyankov/DefinitelyTyped и, похоже, нет определения типа для этого конкретного плагина. Есть несколько вещей, которые вы могли бы сделать.
- вы можете назначить jQuery переменной "любого" типа:
var localJq: любой = jQuery(в этом); localJq.jqGrid ('editGridRow', rowid, { ... });
это обманет компилятор и позволит вам получить доступ к свойствам на var, которые не определены в файле определения.
- вы можете создать файл определения, который добавляет свойства jqGrid в jquery. На этот файл определения необходимо ссылаться в любых файлах typescript, где используется jqGrid. здесь является примером файла определения для простого плагина JQuery. Как вы можете видеть, это легко расширить определение JQuery дополнительными свойствами.