如何使用' @ts-ignore '一个块?

// @ts-ignore注释使TypeScript编译器可以忽略它下面的行。

你怎么能用TypeScript忽略一整块代码呢?

537366 次浏览

你不能。

作为一种变通方法,你可以在文件顶部使用// @ts-nocheck注释来禁用该文件的类型检查:https://devblogs.microsoft.com/typescript/announcing-typescript-3-7-beta/

因此,要禁用对一个块(函数、类等)的检查,可以将它移动到它自己的文件中,然后使用上面的注释/标记。(当然,这并不像基于块的禁用那样灵活,但这是目前可用的最佳选择。)

如果你不需要类型安全,只需要将block带到一个新的分离文件中,并将扩展名更改为.js,.jsx

// @ts-nocheck

它可以添加在文件的开头,其中的所有错误都将被忽略,这不是你正在寻找的块特定的答案,但在某些情况下是等效的。

https://devblogs.microsoft.com/typescript/announcing-typescript-3-7/#ts-nocheck-in-typescript-files

你可以使用// @ts-expect-error来抑制一行上的错误,也可以用于多行(有点麻烦)

https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-9.html#-ts-expect-error-comments

但是等等

如果在没有错误的行上使用// @ts-expect-error,则会导致错误Unused '@ts-expect-error' directive.

所以请确保只在有类型错误的行上使用它

如果你正在使用prettier,你可以为足够小的代码添加//prettier-ignore,这样prettier就可以变成多行

你可以在Files文件的顶部使用//@ts-nocheck

enter image description here

< p >参考: 忽略typescript文件中的所有错误 < / p >

只使用

// @ts-ignore-start
typescript is ...
// @ts-ignore-end

如果你的目标是只忽略声明输出中的某些方法或属性,你可以使用内部注释来做到这一点。

把这个留在这里,因为这篇文章是最热门的搜索结果,我在寻找一种方法来忽略声明输出中的东西时遇到的。

这将忽略下一行,并且只忽略下一行。

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore