版本

no-warning-comments

禁止在注释中使用指定的警告术语

开发人员经常在代码中添加注释,这些注释是不完整的或需要审查的。您最有可能想要修复或审查代码,然后在您认为代码已准备好投入生产之前删除注释。

// TODO: do something
// FIXME: this is not a good idea

规则详情

此规则报告包含其配置中指定的任何预定义术语的注释。

选项

此规则具有一个选项对象字面量

  • "terms": 要匹配的术语的可选数组。默认为 ["todo", "fixme", "xxx"]。术语不区分大小写,并且作为整个单词进行匹配:fix 将匹配 FIX 但不匹配 fixing。术语可以包含多个单词:really bad idea
  • "location": 配置在注释中的哪个位置检查匹配项的可选字符串。默认为 "start"。开头是从第一个非装饰字符开始,忽略空格、换行符和 decoration 中指定的字符。另一个值是匹配注释中的 anywhere
  • "decoration": 当 location 为 "start" 时,在注释开头被忽略的字符的可选数组。默认为 []。任何空格序列或此属性中的字符都将被忽略。当 location 为 "anywhere" 时,此选项将被忽略。

对于默认的 { "terms": ["todo", "fixme", "xxx"], "location": "start" } 选项,**错误**代码示例

在 Playground 中打开
/*eslint no-warning-comments: "error"*/

/*
FIXME
*/
function callback(err, results) {
  if (err) {
    console.error(err);
    return;
  }
  // TODO
}

对于默认的 { "terms": ["todo", "fixme", "xxx"], "location": "start" } 选项,**正确**代码示例

在 Playground 中打开
/*eslint no-warning-comments: "error"*/

function callback(err, results) {
  if (err) {
    console.error(err);
    return;
  }
  // NOT READY FOR PRIME TIME
  // but too bad, it is not a predefined warning term
}

术语和位置

对于 { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" } 选项,**错误**代码示例

在 Playground 中打开
/*eslint no-warning-comments: ["error", { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/

// TODO: this
// todo: this too
// Even this: TODO
/*
 * The same goes for this TODO comment
 * Or a fixme
 * as well as any other term
 */

对于 { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" } 选项,**正确**代码示例

在 Playground 中打开
/*eslint no-warning-comments: ["error", { "terms": ["todo", "fixme", "any other term"], "location": "anywhere" }]*/

// This is to do
// even not any other    term
// any other terminal
/*
 * The same goes for block comments
 * with any other interesting term
 * or fix me this
 */

装饰字符

对于 { "decoration": ["*"] } 选项,**错误**代码示例

在 Playground 中打开
/*eslint no-warning-comments: ["error", { "decoration": ["*"] }]*/

//***** todo decorative asterisks are ignored *****//
/**
 * TODO new lines and asterisks are also ignored in block comments.
 */

对于 { "decoration": ["/", "*"] } 选项,**错误**代码示例

在 Playground 中打开
/*eslint no-warning-comments: ["error", { "decoration": ["/", "*"] }]*/

////// TODO decorative slashes and whitespace are ignored //////
//***** todo decorative asterisks are also ignored *****//
/**
 * TODO new lines are also ignored in block comments.
 */

对于 { "decoration": ["/", "*"] } 选项,**正确**代码示例

在 Playground 中打开
/*eslint no-warning-comments: ["error", { "decoration": ["/", "*"] }]*/

//!TODO preceded by non-decoration character
/**
 *!TODO preceded by non-decoration character in a block comment
 */

何时不使用它

  • 如果您有一个大型代码库,该代码库不是根据不使用此类警告术语的策略开发的,您可能会收到数百个警告/错误,如果您无法修复所有这些警告/错误(例如,如果您没有时间这样做),这可能会适得其反,因为您可能会忽略其他警告/错误,或者习惯于其中的许多警告/错误,并且不再关注它们。
  • 与上述相同的原因:您不应该配置使用非常频繁的术语(例如,评论中使用的母语的核心部分)。

版本

此规则在 ESLint v0.4.4 中引入。

资源

更改语言