空格注释
在注释中的 //
或 /*
后强制执行一致的间距
此规则报告的一些问题可以通过 --fix
命令行 选项自动修复。
此规则在 ESLint v8.53.0 中已弃用。请在 @stylistic/eslint-plugin-js
中使用 对应的规则。
一些风格指南要求或禁止在注释的初始 //
或 /*
后面立即添加空格。在 //
或 /*
之后添加空格可以更轻松地阅读注释中的文本。另一方面,在不将空格放在 //
或 /*
后面的情况下更容易注释掉代码。
规则详细信息
此规则将强制执行注释开始处 //
或 /*
后面的间距一致性。它还为各种文档样式提供了一些例外。
选项
该规则接受两个选项。
-
第一个是字符串,可以是
"always"
或"never"
。默认值为"always"
。-
如果为
"always"
,则//
或/*
必须后跟至少一个空格。 -
如果为
"never"
,则后面不应该有空格。
-
-
此规则还可以接受第二个选项,一个包含以下任意键的对象:
"exceptions"
和"markers"
。"exceptions"
值是一个字符串模式数组,这些模式被认为是该规则的例外。当模式从注释的开头开始并重复到行的末尾或*/
(如果注释是单行注释)时,该规则不会发出警告。请注意,如果第一个参数为"never"
,则例外将被忽略。
"spaced-comment": ["error", "always", { "exceptions": ["-", "+"] }]
"markers"
值是一个字符串模式数组,这些模式被认为是 docblock 样式注释的标记,例如额外的/
,用于表示由 doxygen、vsdoc 等读取的文档,这些文档必须具有其他字符。"markers"
数组将应用于第一个参数的值(例如"always"
或"never"
)无关。
"spaced-comment": ["error", "always", { "markers": ["/"] }]
标记和例外之间的区别在于标记仅出现在注释的开头,而例外可能出现在注释字符串中的任何位置。
您还可以为块注释和行注释定义单独的例外和标记。"block"
对象可以有一个额外的键 "balanced"
,这是一个布尔值,指定内联块注释是否应具有平衡的间距。默认值为 false
。
-
如果
"balanced": true
且"always"
,则/*
必须后跟至少一个空格,并且*/
必须前跟至少一个空格。 -
如果
"balanced": true
且"never"
,则/*
后面不应该有空格,并且*/
前面不应该有空格。 -
如果
"balanced": false
,则不会强制执行平衡的空格。
"spaced-comment": ["error", "always", {
"line": {
"markers": ["/"],
"exceptions": ["-", "+"]
},
"block": {
"markers": ["!"],
"exceptions": ["*"],
"balanced": true
}
}]
始终
使用 "always"
选项时此规则的错误代码示例
/* eslint spaced-comment: ["error", "always", { "block": { "balanced": true } }] */
使用 "always"
选项时此规则的正确代码示例
/* eslint spaced-comment: ["error", "always"] */
// This is a comment with a whitespace at the beginning
/* This is a comment with a whitespace at the beginning */
/*
* This is a comment with a whitespace at the beginning
*/
/*
This comment has a newline
*/
/* eslint spaced-comment: ["error", "always"] */
/**
* I am jsdoc
*/
从不
使用 "never"
选项时此规则的错误代码示例
/*eslint spaced-comment: ["error", "never"]*/
/*eslint spaced-comment: ["error", "never", { "block": { "balanced": true } }]*/
使用 "never"
选项时此规则的正确代码示例
/*eslint spaced-comment: ["error", "never"]*/
/*This is a comment with no whitespace at the beginning */
/*eslint spaced-comment: ["error", "never"]*/
/**
* I am jsdoc
*/
例外
使用 "always"
选项与 "exceptions"
结合时此规则的错误代码示例
/* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["-"] } }] */
// Comment block
/* eslint spaced-comment: ["error", "always", { "exceptions": ["-", "+"] }] */
// Comment block
/* eslint spaced-comment: ["error", "always", { "exceptions": ["-", "+"] }] */
/* Comment block */
/* eslint spaced-comment: ["error", "always", { "line": { "exceptions": ["-+"] } }] */
// Comment block
/* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["*"] } }] */
使用 "always"
选项与 "exceptions"
结合时此规则的正确代码示例
/* eslint spaced-comment: ["error", "always", { "exceptions": ["-"] }] */
//--------------
// Comment block
//--------------
/* eslint spaced-comment: ["error", "always", { "line": { "exceptions": ["-"] } }] */
//--------------
// Comment block
//--------------
/* eslint spaced-comment: ["error", "always", { "exceptions": ["*"] }] */
/****************
* Comment block
****************/
/* eslint spaced-comment: ["error", "always", { "exceptions": ["-+"] }] */
//-+-+-+-+-+-+-+
// Comment block
//-+-+-+-+-+-+-+
/*-+-+-+-+-+-+-+*/
// Comment block
/*-+-+-+-+-+-+-+*/
/* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["-+"] } }] */
/*-+-+-+-+-+-+-+*/
// Comment block
/*-+-+-+-+-+-+-+*/
/* eslint spaced-comment: ["error", "always", { "block": { "exceptions": ["*"] } }] */
/***************/
/********
COMMENT
*******/
标记
使用 "always"
选项与 "markers"
结合时此规则的错误代码示例
/* eslint spaced-comment: ["error", "always", { "markers": ["/"] }] */
/*eslint spaced-comment: ["error", "never", { "block": { "markers": ["!"], "balanced": true } }]*/
使用 "always"
选项与 "markers"
结合时此规则的正确代码示例
/* eslint spaced-comment: ["error", "always", { "markers": ["/"] }] */
/// This is a comment with a marker
/*eslint spaced-comment: ["error", "never", { "markers": ["!<"] }]*/
//!<This is a line comment with a marker
/*!<this is a block comment with a marker
subsequent lines are ignored
*/
/* eslint spaced-comment: ["error", "always", { "markers": ["global"] }] */
/*global ABC*/
相关规则
版本
此规则在 ESLint v0.23.0 中引入。