javascript - 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;
}
这inp
将HTMLInputElement
在运行时有效。JetBrains IDE 正确地将其类型视为Element
. 通过将函数参数合理地“键入”HTMLInputElement
为 is ,IDE 抱怨:
参数类型
Element
不可分配给参数类型HTMLInputElement
IDE 确实建议“将参数类型更改为Element
”;但这完全不合理,因此函数内部不仅禁用了自动完成功能,而且还抱怨在特定于类的方法上“解决问题” (例如:stepUp()
or的方法stepDown()
将被标记为“未解决”)。
那么,在解决警告的同时,我应该怎么做才能对 IDE(不使用)提供适当的“键入提示” ?!*
解决方案
我想到了!类型提示on 声明应该可以inp
解决问题:
/** @type {HTMLInputElement} */
let inp = container.querySelector('#my-input-element');
推荐阅读
- ios - iOS 应用程序的公证审核流程 | WWDC
- coldfusion - 使用 Coldfusion 构建邮政编码邻近搜索
- php - SQL 错误:mysqli_stmt::bind_param():类型定义字符串中的元素数与绑定变量数不匹配
- ios - 展开 segue 工作不正确
- java - 流式传输迭代器与 forEachRemaining
- python-3.x - ImportError:无法导入名称“ss”
- php - 页面在显示前等待查询运行。最近添加的 1&1 SSL 证书
- r - 在 R6 类上定义方括号 (`[`) 运算符
- jquery - Rails 教程 - 第 8 章部署问题
- typescript - 强类型可区分反序列化器