【发布时间】:2020-03-01 09:29:00
【问题描述】:
我刚刚编写了以下运行良好的循环:
let position = 0;
// tslint:disable-next-line:no-conditional-assignment
while ((position = source.indexOf('something interesting', position)) > 0) {
// do something interesting with something interesting
position += 1;
}
但请注意,我必须添加 tslint 例外。显然有人
已决定不允许在
while 有条件的。然而,这是我所知道的最直接的代码模式
特殊情况。
如果这不是“允许的”(或者我应该说“不鼓励”),那该怎么办 推动这个的人认为正确的代码模式是?
【问题讨论】:
-
They also can be an indicator of overly clever code which decreases maintainability.- 不得不说,你在那里写的东西让我的眼睛流血了,我已经有一段时间了。 palantir.github.io/tslint/rules/no-conditional-assignment -
我不知道
correct代码模式,但以下内容会让你的同事(有点)不那么讨厌你:let position = 0; while(true) { if(source.indexOf('something interesting', position) <= 0) break; // do something interesting with something interesting position+=1; } -
@Adam 自 70 年代初以来,我一直在使用这种代码模式,并在 PDP-11 上使用了第一个 C 编译器。将语法写入 K&R 是有原因的:它简洁实用。
标签: javascript typescript tslint