tslint: фигурные по мере необходимости не имеет никакого эффекта

#typescript #tslint

#typescript #tslint

Вопрос:

https://palantir.github.io/tslint/rules/curly/

Я проверил документ и добавил это в свой tslint.json файл.

 "curly": [
  true, "as-needed"
],
  

Однако, когда я запускал tslint myapp.ts , я все еще получал ошибку, подобную приведенной ниже.

 ERROR: express-app/app.ts[28, 5]: if statements must be braced
  

Упомянутый в нем оператор выглядит следующим образом.

     if (server)
      server.close(() => console.log('closed'));
  

Но я думаю, что с такой фигурной конфигурацией, tslint позволил бы мне писать операторы if, подобные этому.

Окружающая среда

  • tslint: 4.5.1
  • typescript: 3.3.3333

Полный tslint.json

 {
  "extends": [
    "tslint:recommended"
  ],
  "jsRules": {},
  "rules": {
    "quotemark": [
      true,
      "single"
    ],
    "curly": [
      true, "as-needed"
    ],
    "radix": [
      false
    ],
    "arrow-parens": [
      true,
      "ban-single-arg-parens"
    ],
    "no-console": [
      true,
      "error"
    ]
  },
  "rulesDirectory": []
}
  

Комментарии:

1. Я попытался воспроизвести это, но у меня это сработало корректно. Какую версию tslint и typescript вы используете? Не могли бы вы включить больше из вашего файла tslint.json? Возможно, проблема где-то еще.

2. @Nicholas, обновлено.

Ответ №1:

Похоже, что "as-needed" опция была добавлена в tslint@5.4.0 .

Чтобы заставить его работать, обновите его tslint до этой версии (запустив npm i -D tslint@^5.4.0 , или как еще вы хотите обновить свои зависимости).

Обратите внимание, что это пересекает основную версию, поэтому могут быть критические изменения.

Комментарии:

1. Извините, я изменил его на false , чтобы избежать ошибки. Но если использовать указанное вами значение, я все равно получаю ту же ошибку.

2. @David Извините за мое замешательство. Я обновил свой ответ, чтобы решить, что, надеюсь, является реальной проблемой.