【问题标题】:How to use `@ts-ignore` for a block?如何对块使用`@ts-ignore`?
【发布时间】:2018-12-11 05:07:06
【问题描述】:

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

如何使用 TypeScript 忽略一整块代码?

【问题讨论】:

  • 甚至@ts-ignore 在打字稿2.4.2 中的一行都不能工作。我升级到"typescript": "2.6.1" 然后它工作了。

标签: typescript tslint


【解决方案1】:

你不能。这是open issue in TypeScript

【讨论】:

  • 两年后答案还有效吗?打字稿问题仍未解决,但还有其他进展吗?
  • 对于那些想要忽略单行的人,在您要允许的行上方添加 2 行 cmets:// eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore
  • @Ryan,或者改用/* @ts-ignore */
  • 这不正是这个问题@Tao @Ryan 的核心吗?只有单行才有可能的事实?
  • // @ts-nocheck - 为我工作 - 通过写在打字稿文件的顶部
【解决方案2】:

你不能。

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

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

【讨论】:

  • 澄清一下,你还是不能。禁用文件类型检查不同于块级禁用。
  • @garrettmaring 同意;文件级禁用只是权宜之计。 (将给定的块拆分成自己的文件并不总是方便甚至不可能——但它比大量的@ts-ignore cmets 更接近块级忽略)
  • 使用 /* tslint:disable */ 对 tslint 做同样的事情
【解决方案3】:

如果您不需要类型安全,只需将块放入新的分隔文件并将扩展名更改为 .js,.jsx

【讨论】:

【解决方案4】:

// @ts-nocheck

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

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

【讨论】:

    【解决方案5】:

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

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

    【讨论】:

      【解决方案6】:

      如果你使用 prettier,你可以添加 //prettier-ignore 来获得足够小以至于 prettier 变成多行的代码

      【讨论】:

        猜你喜欢
        • 2020-11-14
        • 1970-01-01
        • 2020-05-31
        • 1970-01-01
        • 2019-09-05
        • 1970-01-01
        • 2020-02-25
        • 2012-06-28
        • 1970-01-01
        相关资源
        最近更新 更多