Property does not exist on type 'JQuery<HTMLElement>'

181
05 декабря 2021, 00:30

Создаю плагин для jQuery:

import View from "../ts/view";
import Model from "../ts/model";
import Controller from "../ts/controller";
(function($) {
  $.fn.fsdRangeSlider = function(cfg: { // Ошибка здесь
    minValue: number;
    maxValue: number;
    direction?: string;
    label?: boolean;
    interval?: boolean;
    step?: number;
  }) {
    const view = new View({ parent: this[0] });
    const model = new Model({
      minValue: cfg.minValue,
      maxValue: cfg.maxValue,
      direction: cfg.direction,
      label: cfg.label,
      interval: cfg.interval,
      step: cfg.step
    });
    const controller = new Controller(model, view);
    controller.init();
    return this;
  };
})(jQuery);

При компиляции typescript выдаёт ошибку:

Property 'fsdRangeSlider' does not exist on type 'JQuery<HTMLElement>

У меня есть два файла:

- fsdRangeSlider.ts - его код выше
- fsdRangeSlider.d.ts - его код следующий: 
interface JQuery {
    fsdRangeSlider: JQuery;
}

То есть, проблема в том, что у меня не получается внести свойство моего плагина (fsdRangeSlider) в интерфейс JQuery, из-за чего программа не может даже скомпилироваться. Как решить данную проблему?

Answer 1

Решил проблему. В начале файла нужно обязательно добавить jquery.

READ ALSO
ContentControl и DataTemplate в WPF

ContentControl и DataTemplate в WPF

Могу ли я динамически менять содержимое GroupBox таким способом

150
Как можно бороться с конфликтом методов расширения?

Как можно бороться с конфликтом методов расширения?

Вот есть библиотека MoreLINQ и с выходом новых фреймворков там появился собственный метод Append и => возникло пересечение

119
Нет возможности изменить размер формы

Нет возможности изменить размер формы

У формы назначено свойство FormBorderStyle="Sizable", но пользователь не может изменить размер формыСамо свойство мной назначено не программно

206