Как определить тип "this" в функции с помощью Closure Compiler - PullRequest
0 голосов
/ 11 мая 2018

Моя цель с помощью Closure Compiler для моего проекта - добиться 100% типизации, но я борюсь с простым шаблоном jQuery, который выглядит следующим образом:

$Controls.on('change input', /** function(this:Element) */ function () {
    $(this).removeClass('is-invalid').next('.invalid-feedback').remove();
});

С комментарием или без него /** function(this:Element) */ Я получаю следующую ошибку:

js/quote.js:61: WARNING - could not determine the type of this expression
        $(this).removeClass('is-invalid').next('.invalid-feedback').remove();
          ^^^^

Мне показалось, что я нашел ответ от Github Wiki под названием «Типы в системе типов замыканий» в «Функции» thisВведите "section", но, похоже, это не соответствует тому, что я думал.

Как указать тип this для Closure Compiler?

1 Ответ

0 голосов
/ 11 мая 2018

Спасибо @RandyCasburn за его комментарий

/** function(this:Element) */ следует изменить на ** @this {Element} */, чтобы по существу привести тип контекста функции к Element

Я полагаю /** function(this:Element) */ следует использовать скорее для определения типа аргумента функции с контекстом элемента

...