如何使用`@ ts-ignore`作为块

gar*_*ing 60 typescript tslint

// @ts-ignore评论使打字稿编译器忽略它下面的线.

如何用Typescript忽略整个代码块?

Ven*_*ryx 164

你不能。

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

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

  • 澄清一下,你仍然不能。禁用文件的类型检查与块级禁用不同。 (11认同)
  • @garrettmaring 同意;文件级禁用只是权宜之计。(将给定块拆分到自己的文件中并不总是很方便,甚至不可能——但它比大量的“@ts-ignore”注释更接近于块级忽略) (3认同)
  • 使用 `/* tslint:disable */` 对 tslint 执行相同的操作 (3认同)

has*_*emi 66

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

在此输入图像描述

参考: 忽略打字稿文件中的所有错误

但不建议这样做


Sim*_*rta 58

你不能.这是TypeScript中的一个开放性问题:https://github.com/Microsoft/TypeScript/issues/19573

  • @Ryan,或者只使用“/* @ts-ignore */”代替。 (16认同)
  • 两年后这个答案还有效吗?Typescript 问题仍然悬而未决,但还有其他进展吗? (12认同)
  • // @ts-nocheck - 对我有用 - 通过在打字稿文件的顶部写入 (8认同)
  • 对于那些想要忽略单行的人,请在您想要允许的行上方添加 2 行注释: `// eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore` (4认同)
  • 这不是这个问题的核心吗@Tao @Ryan?事实上,这只适用于单行? (2认同)

tyl*_*lim 32

您可以用来// @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.

这实际上很棒,因为它会告诉您您的类型何时正确,何时不正确

因此请确保仅在存在类型错误的行上使用它


Fel*_*ira 28

// @ts-nocheck
Run Code Online (Sandbox Code Playgroud)

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

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


小智 16

这将忽略下一行并且仅忽略下一行。

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
Run Code Online (Sandbox Code Playgroud)

  • 这不是OP问的。 (20认同)

Mic*_*ael 11

在文件的顶部。

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
//@ts-nocheck
Run Code Online (Sandbox Code Playgroud)

不推荐,但如果您必须禁用整个文件的类型检查,那么这可以解决问题。