首页 > 解决方案 > JetBrains IDE 上的 Javascript:将基类类型提示实例分配给参数类型提示作为子类

问题描述

考虑以下:

let container = document.getElementById('container');
let inp = container.querySelector('#my-input-element');
forceDisabled(inp);
/**
 * @param {HTMLInputElement} inp
 */
function forceDisabled(inp) {
    inp.disabled = true;
}

inpHTMLInputElement在运行时有效。JetBrains IDE 正确地将其类型视为Element. 通过将函数参数合理地“键入”HTMLInputElement为 is ,IDE 抱怨:

参数类型Element不可分配给参数类型HTMLInputElement

IDE 确实建议“将参数类型更改为Element;但这完全不合理,因此函数内部不仅禁用了自动完成功能,而且还抱怨在特定于类的方法上“解决问题” (例如:stepUp()or的方法stepDown()将被标记为“未解决”)

那么,在解决警告的同时,我应该怎么做才能对 IDE(不使用提供适当的“键入提示” ?!*

标签: javascriptidephpstormwebstormjetbrains-ide

解决方案


我想到了!类型提示on 声明应该可以inp解决问题:

/** @type {HTMLInputElement} */
let inp = container.querySelector('#my-input-element');

推荐阅读