gpt4 book ai didi

javascript - 使用jsdoc注释,调用时如何指定泛型函数的输出类型

转载 作者:行者123 更新时间:2023-11-30 19:34:43 25 4
gpt4 key购买 nike

我的代码类似于:

document.querySelectorAll('.thing').forEach(el => el.style.color = 'red');

VsCode 中的类型提示系统将 el.style 标记为从 Element 中丢失。我可以通过以下方式解决此问题:

/** @type {NodeListOf<HTMLElement>} */
const things = document.querySelectorAll('.thing');
things.forEach(el => el.style.color = 'red');

为了让 VsCode 的类型系统满意而创建 var 似乎是错误的。

如果我使用 typescript ,我想我可以做到

document.querySelectorAll<HTMLElement>('.thing') // etc...

有没有办法告诉 VsCode 的类型系统我希望从泛型方法中得到哪种类型?

最佳答案

您可以使用 jsdoc cast为此:

// @ts-check
(/** @type {NodeListOf<HTMLElement>} */ (document.querySelectorAll('.thing'))).forEach(el => el.style.color = 'red');

请注意,您必须将转换的目标 ((document.querySelectorAll('.thing')) 包裹在括号中,以便该类型适用于正确的表达式。

关于javascript - 使用jsdoc注释,调用时如何指定泛型函数的输出类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56062478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com