在谷歌,我们使用 @ts-ignore
来抑制在推出新的 TypeScript 版本时构建错误。然而,我们没有一种机制可以自动应用以抑制标记模板字面量内的错误。这源于 @ts-ignore
只抑制紧接在下一行的错误,而对于多行模板中的错误,// @ts-ignore
注解会被字面字符串本身消耗掉。
示例:
function bar(x: string) { console.log(x);}
function foo(x: string) { console.log(x); }
// @ts-ignore
bar`error in the line below
${foo(true)}
is not suppressed`
这也不起作用(尝试2):
bar`error in the line below
// @ts-ignore
${foo(true)}
is not suppressed`
带有相关代码的 Playground 链接
实际行为
错误没有被抑制,并且在尝试2中,// @ts-ignore
注解被模板字符串消耗掉了。
预期行为
理想情况下,尝试1中的错误应该被抑制。
搜索关键词
ts-ignore,标记模板字面量
3条答案
按热度按时间w41d8nur1#
作为解决方法,你可以在占位符内放置ts-ignore,但在表达式之前。这样可以工作。
你的建议可能意味着字符串中的所有错误都被抑制了,这可能是不想要的。
xt0899hw2#
这是一个可接受的解决方法。
kcugc4gi3#
是否可以引入一种新的注解类型,称为
ts-ignore-block
(不太依赖于名称)。它可以作为@rishipal建议中的初始建议:你怎么看@MartinJohns@RyanCavanaugh