【问题标题】:Get around tslint: one-variable-per-declaration绕过 tslint:每个声明一个变量
【发布时间】:2017-04-05 06:08:56
【问题描述】:

如何在此规则下为以下代码编写代码?

let someArray = [...];
for (let i = 0, n = someArray.length; i < n; i++) {
  ...
}

【问题讨论】:

  • 我不知道那种语言或 tslint,但我想下面的作品:let i = 0; let n = someArray.length; for (; i&lt;n; i++) { ... }
  • 如果您不喜欢该 lint 规则,请禁用它。
  • 是的,这听起来像是禁用它的正当理由。无需向上一级创建变量。
  • for (let i = someArray.length; i--; ) { ... }

标签: typescript tslint


【解决方案1】:

这实际上是 JavaScript 中的经典。

tsLint 规则旨在提高代码的可读性。

大多数人缓存数组的长度是因为他们认为存在performance benefit。如果这是您这样做的唯一原因,那么潜在的边际收益不值得付出可读性成本(事实上,当我在浏览器中运行 JSPerf 测试时,它会变慢)。

所以这是默认的“tsLint推荐解决方案”...

for (let i = 0; i < someArray.length; i++) {

在 JavaScript 中,length 属性不会迭代数组,因此成本可以忽略不计。

如果您不同意,您当然可以禁用该规则 - 这是执行此操作的“评论”方式。

/* tslint:disable:one-variable-per-declaration */

或者配置方式:

"one-variable-per-declaration": false

或者在您的情况下,您可能希望使用配置标志来禁用它,仅用于 for 循环:

"one-variable-per-declaration": [true, "ignore-for-loop"]

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 2014-04-03
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 2013-05-04
    相关资源
    最近更新 更多