gpt4 book ai didi

javascript - 如何让 Typescript 检查器相信某个值是 Javascript 中的特定子类?

转载 作者:行者123 更新时间:2023-11-28 04:22:08 25 4
gpt4 key购买 nike

我正在使用 VS Code 和(相对)新的 checkJS启用选项——我正在编写 Javascript,但这可以让 Typescript 引擎进行有限的类型检查。

我正在使用 querySelector 查找 DOM 元素并访问特定于元素的属性:

var img = document.querySelctor("#myImage");
img.src = "image.png";

这会导致代码将第二行标记为问题,因为 querySelector 仅返回 Element.src属性是 HTMLImageElement 的成员。在实际的 Typescript 中,我会在访问属性之前强制转换(强制?断言?)返回值,但由于这是普通的 Javascript,所以不是一个选项。有没有其他方法可以避免在注释中使用 TS 特定的控制标志来填充我的代码?

最佳答案

我在评论中链接的 Github 问题的更新:

今天,没有“好的”方法来解决这个问题,但您可以使用显式类型检查来关闭编译器:

if (img instanceof HTMLImageElement) {
img.src = "image.png";
}

您可能知道检查不可能失败,但这让检查者很高兴。将来,检查器将支持注释指令:

const el = /* @type {HTMLImageElement} */ (document.querySelector("#definitelyAnImage"));

这是今天的夜间版本,所以我希望在 7 月或 8 月的版本中看到它,但这不是官方的。

关于javascript - 如何让 Typescript 检查器相信某个值是 Javascript 中的特定子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45353770/

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