Примите во внимание следующее:
let container = document.getElementById('container');
let inp = container.querySelector('#my-input-element');
forceDisabled(inp);
/**
* @param {HTMLInputElement} inp
*/
function forceDisabled(inp) {
inp.disabled = true;
}
inp
будет действительным HTMLInputElement
во время выполнения. IDE JetBrains правильно рассматривает свой тип как Element
. "набрав" параметр функции рационально равный HTMLInputElement
, IDE сообщает:
Тип аргумента Element
не может быть назначен типу параметра HTMLInputElement
В среде IDE предлагается "изменить тип параметра на Element
" ; но это было бы совершенно иррационально, так что внутри функции не только отключается функция автозаполнения, но и жалуются на «решение проблем» в специфических для класса c методах (например: методы stepUp()
или stepDown()
будут помечены как «неразрешенные») .
Итак, что я должен сделать, чтобы иметь соответствующие «подсказки» для IDE (не используется *
) при разрешении предупреждения?!