You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeScript中@ts-ignore无法屏蔽废弃属性警告,求替代注释

TypeScript中@ts-ignore无法忽略废弃属性警告的解决办法

在TypeScript v5.5.4版本中,使用// @ts-ignore注释尝试忽略废弃属性的警告时会出现失效情况,但该注释对不可达代码类警告依然有效。以下是复现场景:

window.onkeydown = function(e) {
    // @ts-ignore: 该注释无效,警告仍会显示。:(
    console.log(e.keyCode);

    if (false) {
        // @ts-ignore: 该注释生效,警告被隐藏。
        console.log("hello");
    }
}

此时e.keyCode触发的警告为:

'keyCode' is deprecated.(6385)
lib.dom.d.ts(14645, 8): The declaration was marked as deprecated here

可用的替代注释方案

1. // @ts-expect-error

这个注释的设计目的就是明确预期下一行代码会产生类型检查问题,它可以可靠地忽略该行的所有错误和警告,包括废弃属性提示。修改后的代码示例:

window.onkeydown = function(e) {
    // @ts-expect-error: 忽略keyCode的废弃警告
    console.log(e.keyCode);

    if (false) {
        // @ts-ignore: 该注释生效,警告被隐藏。
        console.log("hello");
    }
}

2. // @ts-nocheck

如果需要忽略整个文件的所有类型检查警告,可以在文件最顶部添加这个注释。但注意这是全局生效的,会关闭整个文件的类型校验,建议谨慎使用。

补充说明

@ts-ignore在部分场景(如废弃警告)中失效,是因为TypeScript后续版本对其处理逻辑做了调整,相比之下@ts-expect-error的语义更明确,对各类警告的覆盖更全面,更适合这类精准忽略的场景。

内容的提问来源于stack exchange,提问作者vanchagreen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:47:13