### require-asterisk-prefix Requires that each JSDoc line starts with an `*`. ## Fixer Adds an asterisk for each missing line of the JSDoc block. ## Options The first option is a string with the following possible values: "always", "never", "any". If it is `"always"` then a problem is raised when there is no asterisk prefix on a given JSDoc line. If it is `"never"` then a problem is raised when there is an asterisk present. The default value is `"always"`. You may also set the default to `"any"` and use the `tags` option to apply to specific tags only. The next option is an object with the following properties. ### tags A single options object has the following properties. If you want different values to apply to specific tags, you may use the `tags` option object. The keys are `always`, `never`, or `any` and the values are arrays of tag names or the special value `*description` which applies to the main JSDoc block description. ```js { 'jsdoc/require-asterisk-prefix': ['error', 'always', { tags: { always: ['*description'], any: ['example', 'license'], never: ['copyright'] } }] } ``` #### always If it is `"always"` then a problem is raised when there is no asterisk prefix on a given JSDoc line. #### any No problem is raised regardless of asterisk presence or non-presence. #### never If it is `"never"` then a problem is raised when there is an asterisk present. ## Context and settings ||| |---|---| |Context|everywhere| |Tags|All or as limited by the `tags` option| |Recommended|false| |Options|string ("always", "never", "any") followed by object with `tags`| ## Failing examples The following patterns are considered problems: ````ts /** @param {Number} foo */ function quux (foo) { // with spaces } // Message: Expected JSDoc line to have the prefix. /** @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "any",{"tags":{"always":["param"]}}] // Message: Expected JSDoc line to have the prefix. /** * Desc */ function quux (foo) { // with spaces } // Message: Expected JSDoc line to have the prefix. /** * Desc */ function quux (foo) { // with spaces } // Message: Expected JSDoc line to have the prefix. /** * Desc * */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "never"] // Message: Expected JSDoc line to have no prefix. /** @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"any":["someOtherTag"]}}] // Message: Expected JSDoc line to have the prefix. /** * @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["someOtherTag"]}}] // Message: Expected JSDoc line to have no prefix. /** * @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"never":["param"]}}] // Message: Expected JSDoc line to have no prefix. /** @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["param"]}}] // Message: Expected JSDoc line to have the prefix. /** @param {Number} foo */function quux (foo) { // with spaces } // Message: Expected JSDoc line to have the prefix. /** * @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "never"] // Message: Expected JSDoc line to have no prefix. /** *@param {Number} foo */function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "never"] // Message: Expected JSDoc line to have no prefix. ```` ## Passing examples The following patterns are not considered problems: ````ts /** * Desc * * @param {Number} foo * This is more comment. */ function quux (foo) { } /** * Desc * * @param {{ * foo: Bar, * bar: Baz * }} foo * */ function quux (foo) { } /* <- JSDoc must start with 2 stars. So this is unchecked. */ function quux (foo) {} /** @param {Number} foo */ function quux (foo) { // with spaces } /** @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"any":["param"]}}] /** * @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["param"]}}] /** * @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"never":["someOtherTag"]}}] /** @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"never":["param"]}}] /** @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"always":["someOtherTag"]}}] /** * Desc * */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "never",{"tags":{"any":["*description"]}}] /** * Desc */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "always",{"tags":{"any":["*description"]}}] /** @param {Number} foo */ function quux (foo) { // with spaces } // "jsdoc/require-asterisk-prefix": ["error"|"warn", "any",{"tags":{"always":["someOtherTag"]}}] ````