静音/忽略来自 TypeScript tsc 的 TS2307 错误

Posted

技术标签:

【中文标题】静音/忽略来自 TypeScript tsc 的 TS2307 错误【英文标题】:Mute/ignore TS2307 error from TypeScript tsc 【发布时间】:2016-04-25 03:31:10 【问题描述】:

有没有办法从 TypeScript tsc 编译器中消除 TS2307 错误?

由于我们的代码库中有许多 TS2307 错误,因此很难发现真正的/新的错误和警告。

更新

当一个外部模块被 imported 而它的类型定义 .d.ts 不存在时,会发生此错误。

我知道tsd,但是对于我们使用的许多库,不存在类型定义。

【问题讨论】:

这是重复声明错误吗? 不,更新问题 抑制某些错误仍然是一个问题:/ 【参考方案1】:

从 TypeScript 2.6(2017 年 10 月 31 日发布)开始,现在有 a way to ignore all errors from a specific line 在目标行之前使用 // @ts-ignore cmets。

The mentioned documentation 已经够简洁了,但要回顾一下:

// @ts-ignore
const s : string = false

禁用此行的错误报告。

但是,只有在修复错误或使用像 (x as any) 这样的黑客手段比丢失所有类型检查更麻烦时,才应将其用作最后的手段。

至于指定某些错误,目前(2018年中)状态讨论here, in Design Meeting Notes (2/16/2018) and further comments,基本是

“没有结论

强烈反对引入这种微调。

【讨论】:

【参考方案2】:

更新

这在较新版本的 TypeScript 中是可能的。从stsloth 看到answer。

原始答案

不,没有办法指示编译器抑制 TS2307。出于您所描述的原因,已经对此进行了一些讨论。对于大型项目,这成为进入的巨大障碍。

详情请看:Making javascript to TypeScript migration easier : Suppress errors

在这里:Find a way to suppress the errors generated by importing modules

您可以做的是在构建过程中添加一个过滤错误消息的步骤。当然,这取决于您的构建方式。

【讨论】:

【参考方案3】:

您可能会发现tsc-silent 很有用。虽然,忽略错误你必须 be careful 并记住错误代码会更改,有时在伞形错误下会报告许多不同的问题。

【讨论】:

以上是关于静音/忽略来自 TypeScript tsc 的 TS2307 错误的主要内容,如果未能解决你的问题,请参考以下文章

“npx tsc --version” 报告虚拟机内不同的 TypeScript 版本

尝试(和失败)在 VSC 终端中使用 tsc 在 Visual Studio Code 中运行(成功安装)TypeScript 编译器

如何使用 Typescript 'tsc' 命令作为 devDependency?

TypeScript 安装/版本错误:无法识别术语“tsc”

找不到 Typescript 编译器:命令“tsc”无效

Typescript:为啥 Visual Studio 代码不报告与命令行 tsc 相同的错误?