Tslint: 忽略带有单个注释的行

创建于 2014-06-02  ·  31评论  ·  资料来源: palantir/tslint

有没有办法忽略一行,就像在 jshint 中一样?
我试过 // tslint ignore:line但这似乎不起作用。

P2 Fixed Accepting PRs Feature Request

最有用的评论

对于在这里找到解决方法的任何人

/* tslint:disable */ - Disable all rules for the rest of the file
/* tslint:enable */ - Enable all rules for the rest of the file

例如
/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */

所有31条评论

不幸的是,我们还没有这样的东西。 您必须显式启用和禁用该行。

你如何禁用一条线?

对于在这里找到解决方法的任何人

/* tslint:disable */ - Disable all rules for the rest of the file
/* tslint:enable */ - Enable all rules for the rest of the file

例如
/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */

是否对实现与上述类似的功能进行了任何调查?

@patsissons到底是什么功能? 当前可以启用/禁用带有两个注释的单行。

该功能将不那么冗长的行禁用。 ESLint有多种执行单行规则禁用的方法。

例如,

// eslint-disable-next-line rule-name
var x; // eslint-disable-line rule1 rule2

包装方法非常适合作为复杂规则禁用的冗余,但内联(或下一行)往往会使代码污染较少(这当然是我的观点,但可能不是那么不合理)。

这是嘈杂的:

/* tslint:disable */ window['foo']= window['bar']; /* tslint:enable */

这要好得多:

var x; // eslint-disable-line rule1 rule2

或者甚至只是:

var x; // tslint:disable

这是一行注释这一事实意味着它只会禁用那一行我认为很好。

或者最坏的情况:

var x; // tslint:disable-line

为此接受 PR。 这是最近的一些相关更改,允许//而不是/*禁用评论(尽管仍然需要两条评论): https :

我今晚会尝试做这个,如果不是太具有挑战性,希望今晚也能做个公关

👍 让我们在这里密切关注 ESLint:

someCode(); // tslint:disable-line

// tslint:disable-next-line
someCode();

someCode(); // tslint:disable-line:rule1 rule2

// tslint:disable-next-line:rule1
someCode();

这正是我想要实现的:+1:

不过,为了清楚起见,ESLint 不使用冒号,它们的样式如下:

// eslint-disable-next-line rule1, rule2
someCode();

我假设您希望我们坚持上面包含的 TSLint 样式(冒号和没有逗号分隔规则)。

👍 让我们坚持 TSLint 风格以保持一致性

我现在有这个工作,我只是在创建 PR 之前进行一些提交清理。 策略是将-line-next-line变体转换为它们等效的完全表达的注释开关。 这是通过跟踪行开始位置(对于-line开关)并执行下一行结尾的前瞻(对于-next-line开关)来完成的。 这些似乎工作得很好并且副作用很小,因为它只是充当更详细格式的别名。

在我整理 PR 之前请注意,由于禁用间隔代码的工作方式,您将无法执行此类操作

// tslint:disable-next-line:quotemark variable-name
var AAAaA = 'test' // tslint:enable-line variable-name

老实说,我从没想过有人会做这样的事情,但我只是想在这里说明一下。 您仍然可以像这样进行标准嵌套

// tslint:disable
var AAAaA = 'test' // tslint:enable-line:quotemark
// tslint:enable-next-line:variable-name
var AAAaA = 'test'
// tslint:enable

关于实施的问题,这行得通吗?

/**
 * this is a very long line and violate max-line-length. // tslint:disable-line:max-line-length
 */

不,开关注释不是这样解析的,它们必须正确格式化。 我相信在您的示例中,您会将单行禁用注释放在多行注释之外,这应该会按预期工作。

谢谢解惑,明白了。

@lijunle只是重新审视您的示例,我认为我的解释实际上有些不正确。 我认为您无法通过单行禁用来达到预期的结果。 我相信解析器将无法返回以正确禁用整个多行注释。 要禁用多行注释中的规则,您需要用开关对包装注释。

以上均无效
你们是在谈论功能提议还是已经实施的提议?
很难跟上

@phil123456 https://github.com/palantir/tslint#rule -flags

// tslint:disable-next-line <optional rule identifier>
var foo = 123;

^链接已移至此处: https :

该死的地狱。 “抑制”和“忽略”这两个词都没有出现在该文档中。 我不敢相信我花了多少谷歌搜索才解决了这个问题,阅读了上面的所有内容,才发现它是一个受支持的记录功能,但是文档中没有相应的关键字,所以谷歌是不可能的。 您是否必须克隆整个 repo 并为此提交 PR,或者是否有更快的方法来建议修复 .md 文件?

@pbarranis您可以制作一张新票作为功能请求。 如果他们不进行更改,那么下一步可能是进行 PR。

顺便说一句,您也可以在同一行上执行此操作:

console.log("poop"); // tslint:disable-line no-console

至少从[email protected] 开始。

这不适用于ordered-imports等规则

//@ts-ignore
https://palantir.github.io/tslint/rules/

不幸的是,这个页面只展示了如何禁止使用它。 它没有显示如何正确使用它,也没有解释当你使用它时 tsLint 忽略了多少。 不知道为什么这个页面上没有提到它解释了如何抑制规则https://palantir.github.io/tslint/usage/rule-flags/
我同意上面的评论,问为什么这个页面没有提到“抑制”或“忽略”这样的词,以便在使用谷歌时可以很容易地找到它?
仅供参考,此页面现在说 TSLint 今年将停产: https :

啊,tslint 最终(尚未)合并到 eslint 中,所以我想这很好。

关键是,现在tslint支持忽略下一行功能。

例子:

// tslint:disable-next-line

或者

// tslint:disable-next-line:rule1 rule2 rule3

有关更多详细信息和示例,请参阅https://palantir.github.io/tslint/usage/rule-flags/

🤖 哔哔! 👉 TSLint 已弃用👈,您应该切换到typescript-eslint ! 🤖

🔒 此问题已被锁定,以防止进一步不必要的讨论。 谢谢! 👋

此页面是否有帮助?
0 / 5 - 0 等级