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

问题描述 投票:0回答:11

// @ts-ignore
注释使 TypeScript 编译器能够忽略其下面的行。

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

typescript tslint
11个回答
425
投票

你不能。

作为解决方法,您可以在文件顶部使用

// @ts-nocheck
注释来禁用该文件的类型检查:https://devblogs.microsoft.com/typescript/announcing-typescript-3-7-beta/

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


319
投票

你不能。这是 TypeScript 中的一个开放问题


134
投票

// @ts-nocheck

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

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


63
投票

您可以使用文件顶部的

//@ts-nocheck

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


31
投票

您可以使用

// @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.

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

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


12
投票

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

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

11
投票

位于文件顶部。

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

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


2
投票

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

将其留在这里,因为这篇文章是顶部搜索结果,我在寻找一种忽略声明输出中的内容的方法时遇到了。


2
投票

令人惊讶的是,这一点还没有被提及,但您可以将几乎任何类型转换为未知类型,然后转换为其预期类型。例如,我刚刚将这一行添加到我的代码中:

return <Route path={ path } Component={ (() => authPage) as unknown as ComponentType } />;
};

-6
投票

如果您使用 prettier,则可以添加

//prettier-ignore
,因为代码足够小,以至于 prettier 变成了不止一行


-32
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.