eslint-plugin-jsdoc 37.9.4 → 37.9.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ <a name="user-content-eslint-plugin-jsdoc"></a>
1
2
  <a name="eslint-plugin-jsdoc"></a>
2
3
  # eslint-plugin-jsdoc
3
4
 
@@ -9,72 +10,73 @@
9
10
 
10
11
  JSDoc linting rules for ESLint.
11
12
 
12
- * [eslint-plugin-jsdoc](#eslint-plugin-jsdoc)
13
- * [Installation](#eslint-plugin-jsdoc-installation)
14
- * [Configuration](#eslint-plugin-jsdoc-configuration)
15
- * [Options](#eslint-plugin-jsdoc-options)
16
- * [Settings](#eslint-plugin-jsdoc-settings)
17
- * [Allow tags (`@private` or `@internal`) to disable rules for that comment block](#eslint-plugin-jsdoc-settings-allow-tags-private-or-internal-to-disable-rules-for-that-comment-block)
18
- * [`maxLines` and `minLines`](#eslint-plugin-jsdoc-settings-maxlines-and-minlines)
19
- * [Mode](#eslint-plugin-jsdoc-settings-mode)
20
- * [Alias Preference](#eslint-plugin-jsdoc-settings-alias-preference)
21
- * [`@override`/`@augments`/`@extends`/`@implements`/`@ignore` Without Accompanying `@param`/`@description`/`@example`/`@returns`/`@throws`/`@yields`](#eslint-plugin-jsdoc-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields)
22
- * [Settings to Configure `check-types` and `no-undefined-types`](#eslint-plugin-jsdoc-settings-settings-to-configure-check-types-and-no-undefined-types)
23
- * [`structuredTags`](#eslint-plugin-jsdoc-settings-structuredtags)
24
- * [Advanced](#eslint-plugin-jsdoc-advanced)
25
- * [AST and Selectors](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
26
- * [Rules](#eslint-plugin-jsdoc-rules)
27
- * [`check-access`](#eslint-plugin-jsdoc-rules-check-access)
28
- * [`check-alignment`](#eslint-plugin-jsdoc-rules-check-alignment)
29
- * [`check-examples`](#eslint-plugin-jsdoc-rules-check-examples)
30
- * [`check-indentation`](#eslint-plugin-jsdoc-rules-check-indentation)
31
- * [`check-line-alignment`](#eslint-plugin-jsdoc-rules-check-line-alignment)
32
- * [`check-param-names`](#eslint-plugin-jsdoc-rules-check-param-names)
33
- * [`check-property-names`](#eslint-plugin-jsdoc-rules-check-property-names)
34
- * [`check-syntax`](#eslint-plugin-jsdoc-rules-check-syntax)
35
- * [`check-tag-names`](#eslint-plugin-jsdoc-rules-check-tag-names)
36
- * [`check-types`](#eslint-plugin-jsdoc-rules-check-types)
37
- * [`check-values`](#eslint-plugin-jsdoc-rules-check-values)
38
- * [`empty-tags`](#eslint-plugin-jsdoc-rules-empty-tags)
39
- * [`implements-on-classes`](#eslint-plugin-jsdoc-rules-implements-on-classes)
40
- * [`match-description`](#eslint-plugin-jsdoc-rules-match-description)
41
- * [`match-name`](#eslint-plugin-jsdoc-rules-match-name)
42
- * [`multiline-blocks`](#eslint-plugin-jsdoc-rules-multiline-blocks)
43
- * [`newline-after-description`](#eslint-plugin-jsdoc-rules-newline-after-description)
44
- * [`no-bad-blocks`](#eslint-plugin-jsdoc-rules-no-bad-blocks)
45
- * [`no-defaults`](#eslint-plugin-jsdoc-rules-no-defaults)
46
- * [`no-missing-syntax`](#eslint-plugin-jsdoc-rules-no-missing-syntax)
47
- * [`no-multi-asterisks`](#eslint-plugin-jsdoc-rules-no-multi-asterisks)
48
- * [`no-restricted-syntax`](#eslint-plugin-jsdoc-rules-no-restricted-syntax)
49
- * [`no-types`](#eslint-plugin-jsdoc-rules-no-types)
50
- * [`no-undefined-types`](#eslint-plugin-jsdoc-rules-no-undefined-types)
51
- * [`require-asterisk-prefix`](#eslint-plugin-jsdoc-rules-require-asterisk-prefix)
52
- * [`require-description-complete-sentence`](#eslint-plugin-jsdoc-rules-require-description-complete-sentence)
53
- * [`require-description`](#eslint-plugin-jsdoc-rules-require-description)
54
- * [`require-example`](#eslint-plugin-jsdoc-rules-require-example)
55
- * [`require-file-overview`](#eslint-plugin-jsdoc-rules-require-file-overview)
56
- * [`require-hyphen-before-param-description`](#eslint-plugin-jsdoc-rules-require-hyphen-before-param-description)
57
- * [`require-jsdoc`](#eslint-plugin-jsdoc-rules-require-jsdoc)
58
- * [`require-param-description`](#eslint-plugin-jsdoc-rules-require-param-description)
59
- * [`require-param-name`](#eslint-plugin-jsdoc-rules-require-param-name)
60
- * [`require-param-type`](#eslint-plugin-jsdoc-rules-require-param-type)
61
- * [`require-param`](#eslint-plugin-jsdoc-rules-require-param)
62
- * [`require-property`](#eslint-plugin-jsdoc-rules-require-property)
63
- * [`require-property-description`](#eslint-plugin-jsdoc-rules-require-property-description)
64
- * [`require-property-name`](#eslint-plugin-jsdoc-rules-require-property-name)
65
- * [`require-property-type`](#eslint-plugin-jsdoc-rules-require-property-type)
66
- * [`require-returns-check`](#eslint-plugin-jsdoc-rules-require-returns-check)
67
- * [`require-returns-description`](#eslint-plugin-jsdoc-rules-require-returns-description)
68
- * [`require-returns-type`](#eslint-plugin-jsdoc-rules-require-returns-type)
69
- * [`require-returns`](#eslint-plugin-jsdoc-rules-require-returns)
70
- * [`require-throws`](#eslint-plugin-jsdoc-rules-require-throws)
71
- * [`require-yields`](#eslint-plugin-jsdoc-rules-require-yields)
72
- * [`require-yields-check`](#eslint-plugin-jsdoc-rules-require-yields-check)
73
- * [`sort-tags`](#eslint-plugin-jsdoc-rules-sort-tags)
74
- * [`tag-lines`](#eslint-plugin-jsdoc-rules-tag-lines)
75
- * [`valid-types`](#eslint-plugin-jsdoc-rules-valid-types)
76
-
77
-
13
+ * [eslint-plugin-jsdoc](#user-content-eslint-plugin-jsdoc)
14
+ * [Installation](#user-content-eslint-plugin-jsdoc-installation)
15
+ * [Configuration](#user-content-eslint-plugin-jsdoc-configuration)
16
+ * [Options](#user-content-eslint-plugin-jsdoc-options)
17
+ * [Settings](#user-content-eslint-plugin-jsdoc-settings)
18
+ * [Allow tags (`@private` or `@internal`) to disable rules for that comment block](#user-content-eslint-plugin-jsdoc-settings-allow-tags-private-or-internal-to-disable-rules-for-that-comment-block)
19
+ * [`maxLines` and `minLines`](#user-content-eslint-plugin-jsdoc-settings-maxlines-and-minlines)
20
+ * [Mode](#user-content-eslint-plugin-jsdoc-settings-mode)
21
+ * [Alias Preference](#user-content-eslint-plugin-jsdoc-settings-alias-preference)
22
+ * [`@override`/`@augments`/`@extends`/`@implements`/`@ignore` Without Accompanying `@param`/`@description`/`@example`/`@returns`/`@throws`/`@yields`](#user-content-eslint-plugin-jsdoc-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields)
23
+ * [Settings to Configure `check-types` and `no-undefined-types`](#user-content-eslint-plugin-jsdoc-settings-settings-to-configure-check-types-and-no-undefined-types)
24
+ * [`structuredTags`](#user-content-eslint-plugin-jsdoc-settings-structuredtags)
25
+ * [Advanced](#user-content-eslint-plugin-jsdoc-advanced)
26
+ * [AST and Selectors](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
27
+ * [Rules](#user-content-eslint-plugin-jsdoc-rules)
28
+ * [`check-access`](#user-content-eslint-plugin-jsdoc-rules-check-access)
29
+ * [`check-alignment`](#user-content-eslint-plugin-jsdoc-rules-check-alignment)
30
+ * [`check-examples`](#user-content-eslint-plugin-jsdoc-rules-check-examples)
31
+ * [`check-indentation`](#user-content-eslint-plugin-jsdoc-rules-check-indentation)
32
+ * [`check-line-alignment`](#user-content-eslint-plugin-jsdoc-rules-check-line-alignment)
33
+ * [`check-param-names`](#user-content-eslint-plugin-jsdoc-rules-check-param-names)
34
+ * [`check-property-names`](#user-content-eslint-plugin-jsdoc-rules-check-property-names)
35
+ * [`check-syntax`](#user-content-eslint-plugin-jsdoc-rules-check-syntax)
36
+ * [`check-tag-names`](#user-content-eslint-plugin-jsdoc-rules-check-tag-names)
37
+ * [`check-types`](#user-content-eslint-plugin-jsdoc-rules-check-types)
38
+ * [`check-values`](#user-content-eslint-plugin-jsdoc-rules-check-values)
39
+ * [`empty-tags`](#user-content-eslint-plugin-jsdoc-rules-empty-tags)
40
+ * [`implements-on-classes`](#user-content-eslint-plugin-jsdoc-rules-implements-on-classes)
41
+ * [`match-description`](#user-content-eslint-plugin-jsdoc-rules-match-description)
42
+ * [`match-name`](#user-content-eslint-plugin-jsdoc-rules-match-name)
43
+ * [`multiline-blocks`](#user-content-eslint-plugin-jsdoc-rules-multiline-blocks)
44
+ * [`newline-after-description`](#user-content-eslint-plugin-jsdoc-rules-newline-after-description)
45
+ * [`no-bad-blocks`](#user-content-eslint-plugin-jsdoc-rules-no-bad-blocks)
46
+ * [`no-defaults`](#user-content-eslint-plugin-jsdoc-rules-no-defaults)
47
+ * [`no-missing-syntax`](#user-content-eslint-plugin-jsdoc-rules-no-missing-syntax)
48
+ * [`no-multi-asterisks`](#user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks)
49
+ * [`no-restricted-syntax`](#user-content-eslint-plugin-jsdoc-rules-no-restricted-syntax)
50
+ * [`no-types`](#user-content-eslint-plugin-jsdoc-rules-no-types)
51
+ * [`no-undefined-types`](#user-content-eslint-plugin-jsdoc-rules-no-undefined-types)
52
+ * [`require-asterisk-prefix`](#user-content-eslint-plugin-jsdoc-rules-require-asterisk-prefix)
53
+ * [`require-description-complete-sentence`](#user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence)
54
+ * [`require-description`](#user-content-eslint-plugin-jsdoc-rules-require-description)
55
+ * [`require-example`](#user-content-eslint-plugin-jsdoc-rules-require-example)
56
+ * [`require-file-overview`](#user-content-eslint-plugin-jsdoc-rules-require-file-overview)
57
+ * [`require-hyphen-before-param-description`](#user-content-eslint-plugin-jsdoc-rules-require-hyphen-before-param-description)
58
+ * [`require-jsdoc`](#user-content-eslint-plugin-jsdoc-rules-require-jsdoc)
59
+ * [`require-param-description`](#user-content-eslint-plugin-jsdoc-rules-require-param-description)
60
+ * [`require-param-name`](#user-content-eslint-plugin-jsdoc-rules-require-param-name)
61
+ * [`require-param-type`](#user-content-eslint-plugin-jsdoc-rules-require-param-type)
62
+ * [`require-param`](#user-content-eslint-plugin-jsdoc-rules-require-param)
63
+ * [`require-property`](#user-content-eslint-plugin-jsdoc-rules-require-property)
64
+ * [`require-property-description`](#user-content-eslint-plugin-jsdoc-rules-require-property-description)
65
+ * [`require-property-name`](#user-content-eslint-plugin-jsdoc-rules-require-property-name)
66
+ * [`require-property-type`](#user-content-eslint-plugin-jsdoc-rules-require-property-type)
67
+ * [`require-returns-check`](#user-content-eslint-plugin-jsdoc-rules-require-returns-check)
68
+ * [`require-returns-description`](#user-content-eslint-plugin-jsdoc-rules-require-returns-description)
69
+ * [`require-returns-type`](#user-content-eslint-plugin-jsdoc-rules-require-returns-type)
70
+ * [`require-returns`](#user-content-eslint-plugin-jsdoc-rules-require-returns)
71
+ * [`require-throws`](#user-content-eslint-plugin-jsdoc-rules-require-throws)
72
+ * [`require-yields`](#user-content-eslint-plugin-jsdoc-rules-require-yields)
73
+ * [`require-yields-check`](#user-content-eslint-plugin-jsdoc-rules-require-yields-check)
74
+ * [`sort-tags`](#user-content-eslint-plugin-jsdoc-rules-sort-tags)
75
+ * [`tag-lines`](#user-content-eslint-plugin-jsdoc-rules-tag-lines)
76
+ * [`valid-types`](#user-content-eslint-plugin-jsdoc-rules-valid-types)
77
+
78
+
79
+ <a name="user-content-eslint-plugin-jsdoc-installation"></a>
78
80
  <a name="eslint-plugin-jsdoc-installation"></a>
79
81
  ## Installation
80
82
 
@@ -92,6 +94,7 @@ globally too. Otherwise, install it locally.
92
94
  npm install --save-dev eslint-plugin-jsdoc
93
95
  ```
94
96
 
97
+ <a name="user-content-eslint-plugin-jsdoc-configuration"></a>
95
98
  <a name="eslint-plugin-jsdoc-configuration"></a>
96
99
  ## Configuration
97
100
 
@@ -174,6 +177,7 @@ which enables the rules commented above as "recommended":
174
177
 
175
178
  You can then selectively add to or override the recommended rules.
176
179
 
180
+ <a name="user-content-eslint-plugin-jsdoc-options"></a>
177
181
  <a name="eslint-plugin-jsdoc-options"></a>
178
182
  ## Options
179
183
 
@@ -202,9 +206,11 @@ object supplied as the second argument in an array after the error level
202
206
  }
203
207
  ```
204
208
 
209
+ <a name="user-content-eslint-plugin-jsdoc-settings"></a>
205
210
  <a name="eslint-plugin-jsdoc-settings"></a>
206
211
  ## Settings
207
212
 
213
+ <a name="user-content-eslint-plugin-jsdoc-settings-allow-tags-private-or-internal-to-disable-rules-for-that-comment-block"></a>
208
214
  <a name="eslint-plugin-jsdoc-settings-allow-tags-private-or-internal-to-disable-rules-for-that-comment-block"></a>
209
215
  ### Allow tags (<code>@private</code> or <code>@internal</code>) to disable rules for that comment block
210
216
 
@@ -217,6 +223,7 @@ object supplied as the second argument in an array after the error level
217
223
  on which a `@internal` tag occurs. Defaults to `false`. Note: This has no
218
224
  effect with the rule `empty-tags` (which checks `@internal` itself).
219
225
 
226
+ <a name="user-content-eslint-plugin-jsdoc-settings-maxlines-and-minlines"></a>
220
227
  <a name="eslint-plugin-jsdoc-settings-maxlines-and-minlines"></a>
221
228
  ### <code>maxLines</code> and <code>minLines</code>
222
229
 
@@ -229,6 +236,7 @@ be enforced so as to report problems if a jsdoc block is not found within
229
236
  the specified boundaries. The settings are also used in the fixer to determine
230
237
  how many line breaks to add when a block is missing.
231
238
 
239
+ <a name="user-content-eslint-plugin-jsdoc-settings-mode"></a>
232
240
  <a name="eslint-plugin-jsdoc-settings-mode"></a>
233
241
  ### Mode
234
242
 
@@ -257,6 +265,7 @@ how many line breaks to add when a block is missing.
257
265
  - Disallows namepath on `@interface` for "closure" mode in `valid-types` (and
258
266
  avoids checking in other rules)
259
267
 
268
+ <a name="user-content-eslint-plugin-jsdoc-settings-alias-preference"></a>
260
269
  <a name="eslint-plugin-jsdoc-settings-alias-preference"></a>
261
270
  ### Alias Preference
262
271
 
@@ -349,6 +358,7 @@ See `check-tag-names` for how that fact can be used to set an alias to itself
349
358
  to allow both the alias and the default (since aliases are otherwise not
350
359
  permitted unless used in `tagNamePreference`).
351
360
 
361
+ <a name="user-content-eslint-plugin-jsdoc-settings-alias-preference-default-preferred-aliases"></a>
352
362
  <a name="eslint-plugin-jsdoc-settings-alias-preference-default-preferred-aliases"></a>
353
363
  #### Default Preferred Aliases
354
364
 
@@ -388,6 +398,7 @@ This setting is utilized by the the rule for tag name checking
388
398
  - `require-returns-description`
389
399
  - `require-returns-type`
390
400
 
401
+ <a name="user-content-eslint-plugin-jsdoc-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields"></a>
391
402
  <a name="eslint-plugin-jsdoc-settings-override-augments-extends-implements-ignore-without-accompanying-param-description-example-returns-throws-yields"></a>
392
403
  ### <code>@override</code>/<code>@augments</code>/<code>@extends</code>/<code>@implements</code>/<code>@ignore</code> Without Accompanying <code>@param</code>/<code>@description</code>/<code>@example</code>/<code>@returns</code>/<code>@throws</code>/<code>@yields</code>
393
404
 
@@ -418,6 +429,7 @@ The format of the configuration is as follows:
418
429
  }
419
430
  ```
420
431
 
432
+ <a name="user-content-eslint-plugin-jsdoc-settings-settings-to-configure-check-types-and-no-undefined-types"></a>
421
433
  <a name="eslint-plugin-jsdoc-settings-settings-to-configure-check-types-and-no-undefined-types"></a>
422
434
  ### Settings to Configure <code>check-types</code> and <code>no-undefined-types</code>
423
435
 
@@ -483,6 +495,7 @@ key nor the value will be reported. Thus in `check-types`, this fact can
483
495
  be used to allow both `object` and `Object` if one has a `preferredTypes`
484
496
  key `object: 'Object'` and `Object: 'object'`.
485
497
 
498
+ <a name="user-content-eslint-plugin-jsdoc-settings-structuredtags"></a>
486
499
  <a name="eslint-plugin-jsdoc-settings-structuredtags"></a>
487
500
  ### <code>structuredTags</code>
488
501
 
@@ -528,9 +541,11 @@ values are objects with the following optional properties:
528
541
  name (`@throws Some text`); does not require that both exist but
529
542
  disallows just an empty tag.
530
543
 
544
+ <a name="user-content-eslint-plugin-jsdoc-advanced"></a>
531
545
  <a name="eslint-plugin-jsdoc-advanced"></a>
532
546
  ## Advanced
533
547
 
548
+ <a name="user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors"></a>
534
549
  <a name="eslint-plugin-jsdoc-advanced-ast-and-selectors"></a>
535
550
  ### AST and Selectors
536
551
 
@@ -546,6 +561,7 @@ your files' code which are of interest to check. However, in
546
561
  `eslint-plugin-jsdoc`, we also allow you to use these selectors to define
547
562
  additional contexts where you wish our own rules to be applied.
548
563
 
564
+ <a name="user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors-contexts-format"></a>
549
565
  <a name="eslint-plugin-jsdoc-advanced-ast-and-selectors-contexts-format"></a>
550
566
  #### <code>contexts</code> format
551
567
 
@@ -582,6 +598,7 @@ properties:
582
598
  function). See [@es-joy/jsdoccomment](https://github.com/es-joy/jsdoccomment)
583
599
  for the precise structure of the comment (and comment type) nodes.
584
600
 
601
+ <a name="user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors-discovering-available-ast-definitions"></a>
585
602
  <a name="eslint-plugin-jsdoc-advanced-ast-and-selectors-discovering-available-ast-definitions"></a>
586
603
  #### Discovering available AST definitions
587
604
 
@@ -602,6 +619,7 @@ providing some of your JavaScript to the wonderful
602
619
  [AST Explorer](https://astexplorer.net/) tool and see what AST is built out
603
620
  of your code. You can set the tool to the specific parser which you are using.
604
621
 
622
+ <a name="user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors-uses-tips-for-ast"></a>
605
623
  <a name="eslint-plugin-jsdoc-advanced-ast-and-selectors-uses-tips-for-ast"></a>
606
624
  #### Uses/Tips for AST
607
625
 
@@ -623,9 +641,11 @@ to the selector you wish so as to get messages reported in the bottom right
623
641
  pane which match your [esquery](https://github.com/estools/esquery/#readme)
624
642
  selector).
625
643
 
644
+ <a name="user-content-eslint-plugin-jsdoc-rules"></a>
626
645
  <a name="eslint-plugin-jsdoc-rules"></a>
627
646
  ## Rules
628
647
 
648
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-access"></a>
629
649
  <a name="eslint-plugin-jsdoc-rules-check-access"></a>
630
650
  ### <code>check-access</code>
631
651
 
@@ -800,6 +820,7 @@ function quux (foo) {
800
820
  ````
801
821
 
802
822
 
823
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-alignment"></a>
803
824
  <a name="eslint-plugin-jsdoc-rules-check-alignment"></a>
804
825
  ### <code>check-alignment</code>
805
826
 
@@ -943,6 +964,7 @@ function quux (foo) {
943
964
  ````
944
965
 
945
966
 
967
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-examples"></a>
946
968
  <a name="eslint-plugin-jsdoc-rules-check-examples"></a>
947
969
  ### <code>check-examples</code>
948
970
 
@@ -953,11 +975,13 @@ Ensures that (JavaScript) examples within JSDoc adhere to ESLint rules. Also
953
975
  has options to lint the default values of optional `@param`/`@arg`/`@argument`
954
976
  and `@property`/`@prop` tags or the values of `@default`/`@defaultvalue` tags.
955
977
 
978
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-examples-options-1"></a>
956
979
  <a name="eslint-plugin-jsdoc-rules-check-examples-options-1"></a>
957
980
  #### Options
958
981
 
959
982
  The options below all default to no-op/`false` except as noted.
960
983
 
984
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-examples-options-1-captionrequired"></a>
961
985
  <a name="eslint-plugin-jsdoc-rules-check-examples-options-1-captionrequired"></a>
962
986
  ##### <code>captionRequired</code>
963
987
 
@@ -969,6 +993,7 @@ the beginning of any `@example`.
969
993
 
970
994
  Used only for `@example`.
971
995
 
996
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-examples-options-1-examplecoderegex-and-rejectexamplecoderegex"></a>
972
997
  <a name="eslint-plugin-jsdoc-rules-check-examples-options-1-examplecoderegex-and-rejectexamplecoderegex"></a>
973
998
  ##### <code>exampleCodeRegex</code> and <code>rejectExampleCodeRegex</code>
974
999
 
@@ -998,6 +1023,7 @@ If neither is in use, all examples will be matched. Note also that even if
998
1023
  `captionRequired` is not set, any initial `<caption>` will be stripped out
999
1024
  before doing the regex matching.
1000
1025
 
1026
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-examples-options-1-paddedindent"></a>
1001
1027
  <a name="eslint-plugin-jsdoc-rules-check-examples-options-1-paddedindent"></a>
1002
1028
  ##### <code>paddedIndent</code>
1003
1029
 
@@ -1019,6 +1045,7 @@ out before evaluation.
1019
1045
 
1020
1046
  Only applied to `@example` linting.
1021
1047
 
1048
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-examples-options-1-reportunuseddisabledirectives"></a>
1022
1049
  <a name="eslint-plugin-jsdoc-rules-check-examples-options-1-reportunuseddisabledirectives"></a>
1023
1050
  ##### <code>reportUnusedDisableDirectives</code>
1024
1051
 
@@ -1031,6 +1058,7 @@ Inline ESLint config within `@example` JavaScript is allowed (or within
1031
1058
  needed by the resolved rules will be reported as with the ESLint
1032
1059
  `--report-unused-disable-directives` command.
1033
1060
 
1061
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig"></a>
1034
1062
  <a name="eslint-plugin-jsdoc-rules-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig"></a>
1035
1063
  #### Options for Determining ESLint Rule Applicability (<code>allowInlineConfig</code>, <code>noDefaultExampleRules</code>, <code>matchingFileName</code>, <code>configFile</code>, <code>checkEslintrc</code>, and <code>baseConfig</code>)
1036
1064
 
@@ -1083,6 +1111,7 @@ by decreasing precedence:
1083
1111
  * `baseConfig` - Set to an object of rules with the same schema
1084
1112
  as `.eslintrc.*` for defaults.
1085
1113
 
1114
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig-rules-disabled-by-default-unless-nodefaultexamplerules-is-set-to-true"></a>
1086
1115
  <a name="eslint-plugin-jsdoc-rules-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig-rules-disabled-by-default-unless-nodefaultexamplerules-is-set-to-true"></a>
1087
1116
  ##### Rules Disabled by Default Unless <code>noDefaultExampleRules</code> is Set to <code>true</code>
1088
1117
 
@@ -1119,6 +1148,7 @@ expression-oriented rules will be used by default as well:
1119
1148
  * `no-unused-expressions` - Disabled.
1120
1149
  * `chai-friendly/no-unused-expressions` - Disabled.
1121
1150
 
1151
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig-options-for-checking-other-than-example-checkdefaults-checkparams-or-checkproperties"></a>
1122
1152
  <a name="eslint-plugin-jsdoc-rules-check-examples-options-for-determining-eslint-rule-applicability-allowinlineconfig-nodefaultexamplerules-matchingfilename-configfile-checkeslintrc-and-baseconfig-options-for-checking-other-than-example-checkdefaults-checkparams-or-checkproperties"></a>
1123
1153
  ##### Options for checking other than <code>@example</code> (<code>checkDefaults</code>, <code>checkParams</code>, or <code>checkProperties</code>)
1124
1154
 
@@ -1692,6 +1722,7 @@ const functionName = function (paramOne, paramTwo,
1692
1722
  ````
1693
1723
 
1694
1724
 
1725
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-indentation"></a>
1695
1726
  <a name="eslint-plugin-jsdoc-rules-check-indentation"></a>
1696
1727
  ### <code>check-indentation</code>
1697
1728
 
@@ -1711,11 +1742,13 @@ the following description is not reported:
1711
1742
  */
1712
1743
  ```
1713
1744
 
1745
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-indentation-options-2"></a>
1714
1746
  <a name="eslint-plugin-jsdoc-rules-check-indentation-options-2"></a>
1715
1747
  #### Options
1716
1748
 
1717
1749
  This rule has an object option.
1718
1750
 
1751
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-indentation-options-2-excludetags"></a>
1719
1752
  <a name="eslint-plugin-jsdoc-rules-check-indentation-options-2-excludetags"></a>
1720
1753
  ##### <code>excludeTags</code>
1721
1754
 
@@ -1965,6 +1998,7 @@ function MyDecorator(options: { myOptions: number }) {
1965
1998
  ````
1966
1999
 
1967
2000
 
2001
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-line-alignment"></a>
1968
2002
  <a name="eslint-plugin-jsdoc-rules-check-line-alignment"></a>
1969
2003
  ### <code>check-line-alignment</code>
1970
2004
 
@@ -1972,6 +2006,7 @@ Reports invalid alignment of JSDoc block lines. This is a
1972
2006
  [standard recommended to WordPress code](https://make.wordpress.org/core/handbook/best-practices/inline-documentation-standards/javascript/#aligning-comments),
1973
2007
  for example.
1974
2008
 
2009
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-line-alignment-options-3"></a>
1975
2010
  <a name="eslint-plugin-jsdoc-rules-check-line-alignment-options-3"></a>
1976
2011
  #### Options
1977
2012
 
@@ -1985,6 +2020,7 @@ space is present after the asterisk delimiter.
1985
2020
 
1986
2021
  After the string, an options object is allowed with the following properties.
1987
2022
 
2023
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-line-alignment-options-3-tags"></a>
1988
2024
  <a name="eslint-plugin-jsdoc-rules-check-line-alignment-options-3-tags"></a>
1989
2025
  ##### <code>tags</code>
1990
2026
 
@@ -1992,6 +2028,7 @@ Use this to change the tags which are sought for alignment changes. *Currently*
1992
2028
  *only works with the "never" option.* Defaults to an array of
1993
2029
  `['param', 'arg', 'argument', 'property', 'prop', 'returns', 'return']`.
1994
2030
 
2031
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-line-alignment-options-3-customspacings"></a>
1995
2032
  <a name="eslint-plugin-jsdoc-rules-check-line-alignment-options-3-customspacings"></a>
1996
2033
  ##### <code>customSpacings</code>
1997
2034
 
@@ -2651,11 +2688,13 @@ const fn = ({ids}) => {}
2651
2688
  ````
2652
2689
 
2653
2690
 
2691
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names"></a>
2654
2692
  <a name="eslint-plugin-jsdoc-rules-check-param-names"></a>
2655
2693
  ### <code>check-param-names</code>
2656
2694
 
2657
2695
  Ensures that parameter names in JSDoc match those in the function declaration.
2658
2696
 
2697
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names-destructuring"></a>
2659
2698
  <a name="eslint-plugin-jsdoc-rules-check-param-names-destructuring"></a>
2660
2699
  #### Destructuring
2661
2700
 
@@ -2682,19 +2721,23 @@ other properties, so in looking at the docs alone without looking at the
2682
2721
  function signature, the disadvantage of enabling this option is that it
2683
2722
  may appear that there is an actual property named `extra`.
2684
2723
 
2724
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names-options-4"></a>
2685
2725
  <a name="eslint-plugin-jsdoc-rules-check-param-names-options-4"></a>
2686
2726
  #### Options
2687
2727
 
2728
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names-options-4-checkrestproperty"></a>
2688
2729
  <a name="eslint-plugin-jsdoc-rules-check-param-names-options-4-checkrestproperty"></a>
2689
2730
  ##### <code>checkRestProperty</code>
2690
2731
 
2691
2732
  See the "Destructuring" section. Defaults to `false`.
2692
2733
 
2734
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names-options-4-checktypespattern"></a>
2693
2735
  <a name="eslint-plugin-jsdoc-rules-check-param-names-options-4-checktypespattern"></a>
2694
2736
  ##### <code>checkTypesPattern</code>
2695
2737
 
2696
2738
  See `require-param` under the option of the same name.
2697
2739
 
2740
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names-options-4-enablefixer"></a>
2698
2741
  <a name="eslint-plugin-jsdoc-rules-check-param-names-options-4-enablefixer"></a>
2699
2742
  ##### <code>enableFixer</code>
2700
2743
 
@@ -2705,6 +2748,7 @@ Note that this option will remove duplicates of the same name even if
2705
2748
  the definitions do not match in other ways (e.g., the second param will
2706
2749
  be removed even if it has a different type or description).
2707
2750
 
2751
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names-options-4-allowextratrailingparamdocs"></a>
2708
2752
  <a name="eslint-plugin-jsdoc-rules-check-param-names-options-4-allowextratrailingparamdocs"></a>
2709
2753
  ##### <code>allowExtraTrailingParamDocs</code>
2710
2754
 
@@ -2713,11 +2757,13 @@ representing future expected or virtual params) to be present without needing
2713
2757
  their presence within the function signature. Other inconsistencies between
2714
2758
  `@param`'s and present function parameters will still be reported.
2715
2759
 
2760
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names-options-4-checkdestructured"></a>
2716
2761
  <a name="eslint-plugin-jsdoc-rules-check-param-names-options-4-checkdestructured"></a>
2717
2762
  ##### <code>checkDestructured</code>
2718
2763
 
2719
2764
  Whether to check destructured properties. Defaults to `true`.
2720
2765
 
2766
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names-options-4-usedefaultobjectproperties"></a>
2721
2767
  <a name="eslint-plugin-jsdoc-rules-check-param-names-options-4-usedefaultobjectproperties"></a>
2722
2768
  ##### <code>useDefaultObjectProperties</code>
2723
2769
 
@@ -2726,6 +2772,7 @@ where instead of destructuring, a whole plain object is supplied as default
2726
2772
  value but you wish its keys to be considered as signalling that the properties
2727
2773
  are present and can therefore be documented. Defaults to `false`.
2728
2774
 
2775
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-param-names-options-4-disableextrapropertyreporting"></a>
2729
2776
  <a name="eslint-plugin-jsdoc-rules-check-param-names-options-4-disableextrapropertyreporting"></a>
2730
2777
  ##### <code>disableExtraPropertyReporting</code>
2731
2778
 
@@ -3598,15 +3645,18 @@ const foo = ([, b]) => b;
3598
3645
  ````
3599
3646
 
3600
3647
 
3648
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-property-names"></a>
3601
3649
  <a name="eslint-plugin-jsdoc-rules-check-property-names"></a>
3602
3650
  ### <code>check-property-names</code>
3603
3651
 
3604
3652
  Ensures that property names in JSDoc are not duplicated on the same block
3605
3653
  and that nested properties have defined roots.
3606
3654
 
3655
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-property-names-options-5"></a>
3607
3656
  <a name="eslint-plugin-jsdoc-rules-check-property-names-options-5"></a>
3608
3657
  #### Options
3609
3658
 
3659
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-property-names-options-5-enablefixer-1"></a>
3610
3660
  <a name="eslint-plugin-jsdoc-rules-check-property-names-options-5-enablefixer-1"></a>
3611
3661
  ##### <code>enableFixer</code>
3612
3662
 
@@ -3812,6 +3862,7 @@ function quux (code = 1) {
3812
3862
  ````
3813
3863
 
3814
3864
 
3865
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-syntax"></a>
3815
3866
  <a name="eslint-plugin-jsdoc-rules-check-syntax"></a>
3816
3867
  ### <code>check-syntax</code>
3817
3868
 
@@ -3873,6 +3924,7 @@ function quux (foo) {
3873
3924
  ````
3874
3925
 
3875
3926
 
3927
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-tag-names"></a>
3876
3928
  <a name="eslint-plugin-jsdoc-rules-check-tag-names"></a>
3877
3929
  ### <code>check-tag-names</code>
3878
3930
 
@@ -4050,9 +4102,11 @@ typeSummary
4050
4102
  wizaction
4051
4103
  ```
4052
4104
 
4105
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-tag-names-options-6"></a>
4053
4106
  <a name="eslint-plugin-jsdoc-rules-check-tag-names-options-6"></a>
4054
4107
  #### Options
4055
4108
 
4109
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-tag-names-options-6-definedtags"></a>
4056
4110
  <a name="eslint-plugin-jsdoc-rules-check-tag-names-options-6-definedtags"></a>
4057
4111
  ##### <code>definedTags</code>
4058
4112
 
@@ -4065,6 +4119,7 @@ The format is as follows:
4065
4119
  }
4066
4120
  ```
4067
4121
 
4122
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-tag-names-jsxtags"></a>
4068
4123
  <a name="eslint-plugin-jsdoc-rules-check-tag-names-jsxtags"></a>
4069
4124
  #### <code>jsxTags</code>
4070
4125
 
@@ -4713,6 +4768,7 @@ export function transient<T>(target?: T): T {
4713
4768
  ````
4714
4769
 
4715
4770
 
4771
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-types"></a>
4716
4772
  <a name="eslint-plugin-jsdoc-rules-check-types"></a>
4717
4773
  ### <code>check-types</code>
4718
4774
 
@@ -4736,6 +4792,7 @@ Date
4736
4792
  RegExp
4737
4793
  ```
4738
4794
 
4795
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-types-options-7"></a>
4739
4796
  <a name="eslint-plugin-jsdoc-rules-check-types-options-7"></a>
4740
4797
  #### Options
4741
4798
 
@@ -4785,6 +4842,7 @@ Note that if there is an error [parsing](https://github.com/jsdoc-type-pratt-par
4785
4842
  types for a tag, the function will silently ignore that tag, leaving it to
4786
4843
  the `valid-types` rule to report parsing errors.
4787
4844
 
4845
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-types-why-not-capital-case-everything"></a>
4788
4846
  <a name="eslint-plugin-jsdoc-rules-check-types-why-not-capital-case-everything"></a>
4789
4847
  #### Why not capital case everything?
4790
4848
 
@@ -5802,6 +5860,7 @@ function a () {}
5802
5860
  ````
5803
5861
 
5804
5862
 
5863
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-values"></a>
5805
5864
  <a name="eslint-plugin-jsdoc-rules-check-values"></a>
5806
5865
  ### <code>check-values</code>
5807
5866
 
@@ -5822,21 +5881,25 @@ This rule checks the values for a handful of tags:
5822
5881
  'constant', 'event', 'external', 'file', 'function', 'member', 'mixin',
5823
5882
  'module', 'namespace', 'typedef',
5824
5883
 
5884
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-values-options-8"></a>
5825
5885
  <a name="eslint-plugin-jsdoc-rules-check-values-options-8"></a>
5826
5886
  #### Options
5827
5887
 
5888
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-values-options-8-allowedauthors"></a>
5828
5889
  <a name="eslint-plugin-jsdoc-rules-check-values-options-8-allowedauthors"></a>
5829
5890
  ##### <code>allowedAuthors</code>
5830
5891
 
5831
5892
  An array of allowable author values. If absent, only non-whitespace will
5832
5893
  be checked for.
5833
5894
 
5895
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-values-options-8-allowedlicenses"></a>
5834
5896
  <a name="eslint-plugin-jsdoc-rules-check-values-options-8-allowedlicenses"></a>
5835
5897
  ##### <code>allowedLicenses</code>
5836
5898
 
5837
5899
  An array of allowable license values or `true` to allow any license text.
5838
5900
  If present as an array, will be used in place of SPDX identifiers.
5839
5901
 
5902
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-values-options-8-licensepattern"></a>
5840
5903
  <a name="eslint-plugin-jsdoc-rules-check-values-options-8-licensepattern"></a>
5841
5904
  ##### <code>licensePattern</code>
5842
5905
 
@@ -5851,6 +5914,7 @@ Note that the `/` delimiters are optional, but necessary to add flags.
5851
5914
  Defaults to using the `u` flag, so to add your own flags, encapsulate
5852
5915
  your expression as a string, but like a literal, e.g., `/^mit$/ui`.
5853
5916
 
5917
+ <a name="user-content-eslint-plugin-jsdoc-rules-check-values-options-8-numericonlyvariation"></a>
5854
5918
  <a name="eslint-plugin-jsdoc-rules-check-values-options-8-numericonlyvariation"></a>
5855
5919
  ##### <code>numericOnlyVariation</code>
5856
5920
 
@@ -6137,6 +6201,7 @@ function quux (foo) {
6137
6201
  ````
6138
6202
 
6139
6203
 
6204
+ <a name="user-content-eslint-plugin-jsdoc-rules-empty-tags"></a>
6140
6205
  <a name="eslint-plugin-jsdoc-rules-empty-tags"></a>
6141
6206
  ### <code>empty-tags</code>
6142
6207
 
@@ -6171,9 +6236,11 @@ causes rules not to take effect).
6171
6236
  Similarly, `@internal` will still be checked for content by this rule even with
6172
6237
  `settings.jsdoc.ignoreInternal` set to `true`.
6173
6238
 
6239
+ <a name="user-content-eslint-plugin-jsdoc-rules-empty-tags-options-9"></a>
6174
6240
  <a name="eslint-plugin-jsdoc-rules-empty-tags-options-9"></a>
6175
6241
  #### Options
6176
6242
 
6243
+ <a name="user-content-eslint-plugin-jsdoc-rules-empty-tags-options-9-tags-1"></a>
6177
6244
  <a name="eslint-plugin-jsdoc-rules-empty-tags-options-9-tags-1"></a>
6178
6245
  ##### <code>tags</code>
6179
6246
 
@@ -6332,6 +6399,7 @@ function quux () {}
6332
6399
  ````
6333
6400
 
6334
6401
 
6402
+ <a name="user-content-eslint-plugin-jsdoc-rules-implements-on-classes"></a>
6335
6403
  <a name="eslint-plugin-jsdoc-rules-implements-on-classes"></a>
6336
6404
  ### <code>implements-on-classes</code>
6337
6405
 
@@ -6344,9 +6412,11 @@ To indicate that a function follows another function's signature, one might
6344
6412
  instead use `@type` to indicate the `@function` or `@callback` to which the
6345
6413
  function is adhering.
6346
6414
 
6415
+ <a name="user-content-eslint-plugin-jsdoc-rules-implements-on-classes-options-10"></a>
6347
6416
  <a name="eslint-plugin-jsdoc-rules-implements-on-classes-options-10"></a>
6348
6417
  #### Options
6349
6418
 
6419
+ <a name="user-content-eslint-plugin-jsdoc-rules-implements-on-classes-options-10-contexts"></a>
6350
6420
  <a name="eslint-plugin-jsdoc-rules-implements-on-classes-options-10-contexts"></a>
6351
6421
  ##### <code>contexts</code>
6352
6422
 
@@ -6359,7 +6429,7 @@ for finding function blocks not attached to a function declaration or
6359
6429
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
6360
6430
  `@method`) (including those associated with an `@interface`).
6361
6431
 
6362
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
6432
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
6363
6433
  section of our README for more on the expected format.
6364
6434
 
6365
6435
  |||
@@ -6528,6 +6598,7 @@ function quux () {
6528
6598
  ````
6529
6599
 
6530
6600
 
6601
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-description"></a>
6531
6602
  <a name="eslint-plugin-jsdoc-rules-match-description"></a>
6532
6603
  ### <code>match-description</code>
6533
6604
 
@@ -6555,9 +6626,11 @@ case-insensitive unless one opts in to add the `i` flag.
6555
6626
  You can add the `s` flag if you want `.` to match newlines. Note, however,
6556
6627
  that the trailing newlines of a description will not be matched.
6557
6628
 
6629
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-description-options-11"></a>
6558
6630
  <a name="eslint-plugin-jsdoc-rules-match-description-options-11"></a>
6559
6631
  #### Options
6560
6632
 
6633
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-description-options-11-matchdescription"></a>
6561
6634
  <a name="eslint-plugin-jsdoc-rules-match-description-options-11-matchdescription"></a>
6562
6635
  ##### <code>matchDescription</code>
6563
6636
 
@@ -6570,6 +6643,7 @@ You can supply your own expression to override the default, passing a
6570
6643
  }
6571
6644
  ```
6572
6645
 
6646
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-description-options-11-message"></a>
6573
6647
  <a name="eslint-plugin-jsdoc-rules-match-description-options-11-message"></a>
6574
6648
  ##### <code>message</code>
6575
6649
 
@@ -6586,6 +6660,7 @@ You may provide a custom default message by using the following format:
6586
6660
  This can be overridden per tag or for the main block description by setting
6587
6661
  `message` within `tags` or `mainDescription`, respectively.
6588
6662
 
6663
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-description-options-11-tags-2"></a>
6589
6664
  <a name="eslint-plugin-jsdoc-rules-match-description-options-11-tags-2"></a>
6590
6665
  ##### <code>tags</code>
6591
6666
 
@@ -6635,6 +6710,7 @@ its "description" (e.g., for `@returns {someType} some description`, the
6635
6710
  description is `some description` while for `@some-tag xyz`, the description
6636
6711
  is `xyz`).
6637
6712
 
6713
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-description-options-11-maindescription"></a>
6638
6714
  <a name="eslint-plugin-jsdoc-rules-match-description-options-11-maindescription"></a>
6639
6715
  ##### <code>mainDescription</code>
6640
6716
 
@@ -6675,6 +6751,7 @@ You may also provide an object with `message`:
6675
6751
  }
6676
6752
  ```
6677
6753
 
6754
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-description-options-11-contexts-1"></a>
6678
6755
  <a name="eslint-plugin-jsdoc-rules-match-description-options-11-contexts-1"></a>
6679
6756
  ##### <code>contexts</code>
6680
6757
 
@@ -6684,7 +6761,7 @@ Set this to an array of strings representing the AST context (or an object with
6684
6761
  classes). Overrides the default contexts (see below). Set to `"any"` if you
6685
6762
  want the rule to apply to any jsdoc block throughout your files.
6686
6763
 
6687
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
6764
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
6688
6765
  section of our README for more on the expected format.
6689
6766
 
6690
6767
  |||
@@ -7432,6 +7509,7 @@ function quux () {
7432
7509
  ````
7433
7510
 
7434
7511
 
7512
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-name"></a>
7435
7513
  <a name="eslint-plugin-jsdoc-rules-match-name"></a>
7436
7514
  ### <code>match-name</code>
7437
7515
 
@@ -7444,11 +7522,13 @@ name will actually be part of the description (e.g., for
7444
7522
  `structuredTags` setting (if `name: false`, this rule will not apply to
7445
7523
  that tag).
7446
7524
 
7525
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-name-options-12"></a>
7447
7526
  <a name="eslint-plugin-jsdoc-rules-match-name-options-12"></a>
7448
7527
  #### Options
7449
7528
 
7450
7529
  A single options object with the following properties:
7451
7530
 
7531
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-name-options-12-match"></a>
7452
7532
  <a name="eslint-plugin-jsdoc-rules-match-name-options-12-match"></a>
7453
7533
  ##### <code>match</code>
7454
7534
 
@@ -7473,7 +7553,7 @@ properties, all of which act to confine one another:
7473
7553
 
7474
7554
  - `context` - AST to confine the allowing or disallowing to jsdoc blocks
7475
7555
  associated with a particular context. See the
7476
- ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
7556
+ ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
7477
7557
  section of our README for more on the expected format.
7478
7558
  - `comment` - As with `context` but AST for the JSDoc block comment and types
7479
7559
 
@@ -7643,6 +7723,7 @@ class A {
7643
7723
  ````
7644
7724
 
7645
7725
 
7726
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks"></a>
7646
7727
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks"></a>
7647
7728
  ### <code>multiline-blocks</code>
7648
7729
 
@@ -7655,11 +7736,13 @@ all jsdoc blocks!
7655
7736
 
7656
7737
  Also allows for preventing text at the very beginning or very end of blocks.
7657
7738
 
7739
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13"></a>
7658
7740
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13"></a>
7659
7741
  #### Options
7660
7742
 
7661
7743
  A single options object with the following properties.
7662
7744
 
7745
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nozerolinetext-defaults-to-true"></a>
7663
7746
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nozerolinetext-defaults-to-true"></a>
7664
7747
  ##### <code>noZeroLineText</code> (defaults to <code>true</code>)
7665
7748
 
@@ -7668,6 +7751,7 @@ space will be reported. (Text after a newline is not reported.)
7668
7751
 
7669
7752
  `noMultilineBlocks` will have priority over this rule if it applies.
7670
7753
 
7754
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nofinallinetext-defaults-to-true"></a>
7671
7755
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nofinallinetext-defaults-to-true"></a>
7672
7756
  ##### <code>noFinalLineText</code> (defaults to <code>true</code>)
7673
7757
 
@@ -7676,12 +7760,14 @@ line will be reported. (Text preceding a newline is not reported.)
7676
7760
 
7677
7761
  `noMultilineBlocks` will have priority over this rule if it applies.
7678
7762
 
7763
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nosinglelineblocks-defaults-to-false"></a>
7679
7764
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nosinglelineblocks-defaults-to-false"></a>
7680
7765
  ##### <code>noSingleLineBlocks</code> (defaults to <code>false</code>)
7681
7766
 
7682
7767
  If this is `true`, any single line blocks will be reported, except those which
7683
7768
  are whitelisted in `singleLineTags`.
7684
7769
 
7770
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-singlelinetags-defaults-to-lends-type"></a>
7685
7771
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-singlelinetags-defaults-to-lends-type"></a>
7686
7772
  ##### <code>singleLineTags</code> (defaults to <code>[&#39;lends&#39;, &#39;type&#39;]</code>)
7687
7773
 
@@ -7691,6 +7777,7 @@ cause all single line blocks to be reported. If `'*'` is present, then
7691
7777
  the presence of a tag will allow single line blocks (but not if a tag is
7692
7778
  missing).
7693
7779
 
7780
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nomultilineblocks-defaults-to-false"></a>
7694
7781
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nomultilineblocks-defaults-to-false"></a>
7695
7782
  ##### <code>noMultilineBlocks</code> (defaults to <code>false</code>)
7696
7783
 
@@ -7698,6 +7785,7 @@ Requires that jsdoc blocks are restricted to single lines only unless impacted
7698
7785
  by the options `minimumLengthForMultiline`, `multilineTags`, or
7699
7786
  `allowMultipleTags`.
7700
7787
 
7788
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-minimumlengthformultiline-defaults-to-not-being-in-effect"></a>
7701
7789
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-minimumlengthformultiline-defaults-to-not-being-in-effect"></a>
7702
7790
  ##### <code>minimumLengthForMultiline</code> (defaults to not being in effect)
7703
7791
 
@@ -7707,6 +7795,7 @@ be permitted if containing at least the given amount of text.
7707
7795
  If not set, multiline blocks will not be permitted regardless of length unless
7708
7796
  a relevant tag is present and `multilineTags` is set.
7709
7797
 
7798
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-multilinetags-defaults-to"></a>
7710
7799
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-multilinetags-defaults-to"></a>
7711
7800
  ##### <code>multilineTags</code> (defaults to <code>[&#39;*&#39;]</code>)
7712
7801
 
@@ -7723,6 +7812,7 @@ such a tag will cause multiline blocks to be allowed.
7723
7812
  You may set this to an empty array to prevent any tag from permitting multiple
7724
7813
  lines.
7725
7814
 
7815
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-allowmultipletags-defaults-to-true"></a>
7726
7816
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-allowmultipletags-defaults-to-true"></a>
7727
7817
  ##### <code>allowMultipleTags</code> (defaults to <code>true</code>)
7728
7818
 
@@ -8010,11 +8100,13 @@ The following patterns are not considered problems:
8010
8100
  ````
8011
8101
 
8012
8102
 
8103
+ <a name="user-content-eslint-plugin-jsdoc-rules-newline-after-description"></a>
8013
8104
  <a name="eslint-plugin-jsdoc-rules-newline-after-description"></a>
8014
8105
  ### <code>newline-after-description</code>
8015
8106
 
8016
8107
  Enforces a consistent padding of the block description.
8017
8108
 
8109
+ <a name="user-content-eslint-plugin-jsdoc-rules-newline-after-description-options-14"></a>
8018
8110
  <a name="eslint-plugin-jsdoc-rules-newline-after-description-options-14"></a>
8019
8111
  #### Options
8020
8112
 
@@ -8249,6 +8341,7 @@ function example() {
8249
8341
  ````
8250
8342
 
8251
8343
 
8344
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-bad-blocks"></a>
8252
8345
  <a name="eslint-plugin-jsdoc-rules-no-bad-blocks"></a>
8253
8346
  ### <code>no-bad-blocks</code>
8254
8347
 
@@ -8258,11 +8351,13 @@ asterisks, but which appear to be intended as jsdoc blocks due to the presence
8258
8351
  of whitespace followed by whitespace or asterisks, and
8259
8352
  an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag).
8260
8353
 
8354
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-bad-blocks-options-15"></a>
8261
8355
  <a name="eslint-plugin-jsdoc-rules-no-bad-blocks-options-15"></a>
8262
8356
  #### Options
8263
8357
 
8264
8358
  Takes an optional options object with the following.
8265
8359
 
8360
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-bad-blocks-options-15-ignore"></a>
8266
8361
  <a name="eslint-plugin-jsdoc-rules-no-bad-blocks-options-15-ignore"></a>
8267
8362
  ##### <code>ignore</code>
8268
8363
 
@@ -8272,6 +8367,7 @@ a multi-comment block and at-sign `/* @`.
8272
8367
  Defaults to `['ts-check', 'ts-expect-error', 'ts-ignore', 'ts-nocheck']`
8273
8368
  (some directives [used by TypeScript](https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html#ts-check)).
8274
8369
 
8370
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-bad-blocks-options-15-preventallmultiasteriskblocks"></a>
8275
8371
  <a name="eslint-plugin-jsdoc-rules-no-bad-blocks-options-15-preventallmultiasteriskblocks"></a>
8276
8372
  ##### <code>preventAllMultiAsteriskBlocks</code>
8277
8373
 
@@ -8394,6 +8490,7 @@ function quux (foo) {
8394
8490
  ````
8395
8491
 
8396
8492
 
8493
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-defaults"></a>
8397
8494
  <a name="eslint-plugin-jsdoc-rules-no-defaults"></a>
8398
8495
  ### <code>no-defaults</code>
8399
8496
 
@@ -8409,9 +8506,11 @@ tag is attached).
8409
8506
  Unless your `@default` is on a function, you will need to set `contexts`
8410
8507
  to an appropriate context, including, if you wish, "any".
8411
8508
 
8509
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-defaults-options-16"></a>
8412
8510
  <a name="eslint-plugin-jsdoc-rules-no-defaults-options-16"></a>
8413
8511
  #### Options
8414
8512
 
8513
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-defaults-options-16-nooptionalparamnames"></a>
8415
8514
  <a name="eslint-plugin-jsdoc-rules-no-defaults-options-16-nooptionalparamnames"></a>
8416
8515
  ##### <code>noOptionalParamNames</code>
8417
8516
 
@@ -8421,6 +8520,7 @@ the presence of ES6 default parameters (bearing in mind that such
8421
8520
  "defaults" are only applied when the supplied value is missing or
8422
8521
  `undefined` but not for `null` or other "falsey" values).
8423
8522
 
8523
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-defaults-options-16-contexts-2"></a>
8424
8524
  <a name="eslint-plugin-jsdoc-rules-no-defaults-options-16-contexts-2"></a>
8425
8525
  ##### <code>contexts</code>
8426
8526
 
@@ -8432,7 +8532,7 @@ for finding function blocks not attached to a function declaration or
8432
8532
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
8433
8533
  `@method`) (including those associated with an `@interface`).
8434
8534
 
8435
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
8535
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
8436
8536
  section of our README for more on the expected format.
8437
8537
 
8438
8538
  |||
@@ -8569,6 +8669,7 @@ const a = {};
8569
8669
  ````
8570
8670
 
8571
8671
 
8672
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-missing-syntax"></a>
8572
8673
  <a name="eslint-plugin-jsdoc-rules-no-missing-syntax"></a>
8573
8674
  ### <code>no-missing-syntax</code>
8574
8675
 
@@ -8606,9 +8707,11 @@ which are not adequate to satisfy a condition, e.g.,
8606
8707
  not report if there were only a function declaration of the name "ignoreMe"
8607
8708
  (though it would report by function declarations of other names).
8608
8709
 
8710
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-missing-syntax-options-17"></a>
8609
8711
  <a name="eslint-plugin-jsdoc-rules-no-missing-syntax-options-17"></a>
8610
8712
  #### Options
8611
8713
 
8714
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-missing-syntax-options-17-contexts-3"></a>
8612
8715
  <a name="eslint-plugin-jsdoc-rules-no-missing-syntax-options-17-contexts-3"></a>
8613
8716
  ##### <code>contexts</code>
8614
8717
 
@@ -8627,7 +8730,7 @@ your files (as is necessary for finding function blocks not attached to a
8627
8730
  function declaration or expression, i.e., `@callback` or `@function` (or its
8628
8731
  aliases `@func` or `@method`) (including those associated with an `@interface`).
8629
8732
 
8630
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
8733
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
8631
8734
  section of our README for more on the expected format.
8632
8735
 
8633
8736
  |||
@@ -8806,6 +8909,7 @@ function quux () {
8806
8909
  ````
8807
8910
 
8808
8911
 
8912
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks"></a>
8809
8913
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks"></a>
8810
8914
  ### <code>no-multi-asterisks</code>
8811
8915
 
@@ -8815,9 +8919,11 @@ Note that if you wish to prevent multiple asterisks at the very beginning of
8815
8919
  the jsdoc block, you should use `no-bad-blocks` (as that is not proper jsdoc
8816
8920
  and that rule is for catching blocks which only seem like jsdoc).
8817
8921
 
8922
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18"></a>
8818
8923
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18"></a>
8819
8924
  #### Options
8820
8925
 
8926
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-allowwhitespace-defaults-to-false"></a>
8821
8927
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-allowwhitespace-defaults-to-false"></a>
8822
8928
  ##### <code>allowWhitespace</code> (defaults to <code>false</code>)
8823
8929
 
@@ -8829,6 +8935,7 @@ Set to `true` if you wish to allow asterisks after a space (as with Markdown):
8829
8935
  */
8830
8936
  ```
8831
8937
 
8938
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-preventatmiddlelines-defaults-to-true"></a>
8832
8939
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-preventatmiddlelines-defaults-to-true"></a>
8833
8940
  ##### <code>preventAtMiddleLines</code> (defaults to <code>true</code>)
8834
8941
 
@@ -8841,6 +8948,7 @@ Prevent the likes of this:
8841
8948
  */
8842
8949
  ```
8843
8950
 
8951
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-preventatend-defaults-to-true"></a>
8844
8952
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-preventatend-defaults-to-true"></a>
8845
8953
  ##### <code>preventAtEnd</code> (defaults to <code>true</code>)
8846
8954
 
@@ -9058,6 +9166,7 @@ function foo() {
9058
9166
  ````
9059
9167
 
9060
9168
 
9169
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-restricted-syntax"></a>
9061
9170
  <a name="eslint-plugin-jsdoc-rules-no-restricted-syntax"></a>
9062
9171
  ### <code>no-restricted-syntax</code>
9063
9172
 
@@ -9075,9 +9184,11 @@ structures, (whether or not you add a specific `comment` condition).
9075
9184
  Note that if your parser supports comment AST (as [jsdoc-eslint-parser](https://github.com/brettz9/jsdoc-eslint-parser)
9076
9185
  is designed to do), you can just use ESLint's rule.
9077
9186
 
9187
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-restricted-syntax-options-19"></a>
9078
9188
  <a name="eslint-plugin-jsdoc-rules-no-restricted-syntax-options-19"></a>
9079
9189
  #### Options
9080
9190
 
9191
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-restricted-syntax-options-19-contexts-4"></a>
9081
9192
  <a name="eslint-plugin-jsdoc-rules-no-restricted-syntax-options-19-contexts-4"></a>
9082
9193
  ##### <code>contexts</code>
9083
9194
 
@@ -9092,7 +9203,7 @@ your files (as is necessary for finding function blocks not attached to a
9092
9203
  function declaration or expression, i.e., `@callback` or `@function` (or its
9093
9204
  aliases `@func` or `@method`) (including those associated with an `@interface`).
9094
9205
 
9095
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
9206
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
9096
9207
  section of our README for more on the expected format.
9097
9208
 
9098
9209
  |||
@@ -9270,6 +9381,7 @@ const MY_ENUM = Object.freeze({
9270
9381
  ````
9271
9382
 
9272
9383
 
9384
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-types"></a>
9273
9385
  <a name="eslint-plugin-jsdoc-rules-no-types"></a>
9274
9386
  ### <code>no-types</code>
9275
9387
 
@@ -9278,9 +9390,11 @@ This rule reports types being used on `@param` or `@returns`.
9278
9390
  The rule is intended to prevent the indication of types on tags where
9279
9391
  the type information would be redundant with TypeScript.
9280
9392
 
9393
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-types-options-20"></a>
9281
9394
  <a name="eslint-plugin-jsdoc-rules-no-types-options-20"></a>
9282
9395
  #### Options
9283
9396
 
9397
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-types-options-20-contexts-5"></a>
9284
9398
  <a name="eslint-plugin-jsdoc-rules-no-types-options-20-contexts-5"></a>
9285
9399
  ##### <code>contexts</code>
9286
9400
 
@@ -9292,7 +9406,7 @@ for finding function blocks not attached to a function declaration or
9292
9406
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
9293
9407
  `@method`) (including those associated with an `@interface`).
9294
9408
 
9295
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
9409
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
9296
9410
  section of our README for more on the expected format.
9297
9411
 
9298
9412
  |||
@@ -9405,6 +9519,7 @@ function quux (foo) {
9405
9519
  ````
9406
9520
 
9407
9521
 
9522
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-undefined-types"></a>
9408
9523
  <a name="eslint-plugin-jsdoc-rules-no-undefined-types"></a>
9409
9524
  ### <code>no-undefined-types</code>
9410
9525
 
@@ -9434,7 +9549,7 @@ The following types are always considered defined.
9434
9549
  - `null`, `undefined`, `void`, `string`, `boolean`, `object`,
9435
9550
  `function`, `symbol`
9436
9551
  - `number`, `bigint`, `NaN`, `Infinity`
9437
- - `any`, `*`
9552
+ - `any`, `*`, `never`, `unknown`, `const`
9438
9553
  - `this`, `true`, `false`
9439
9554
  - `Array`, `Object`, `RegExp`, `Date`, `Function`
9440
9555
 
@@ -9451,6 +9566,7 @@ reporting on use of that namepath elsewhere) and/or that a tag's `type` is
9451
9566
  `false` (and should not be checked for types). If the `type` is an array, that
9452
9567
  array's items will be considered as defined for the purposes of that tag.
9453
9568
 
9569
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-undefined-types-options-21"></a>
9454
9570
  <a name="eslint-plugin-jsdoc-rules-no-undefined-types-options-21"></a>
9455
9571
  #### Options
9456
9572
 
@@ -9781,14 +9897,6 @@ function foo () {
9781
9897
 
9782
9898
  }
9783
9899
 
9784
- /**
9785
- *
9786
- *
9787
- */
9788
- function foo () {
9789
-
9790
- }
9791
-
9792
9900
  /**
9793
9901
  * @param {MyType} foo - Bar.
9794
9902
  * @param {HisType} bar - Foo.
@@ -10073,14 +10181,21 @@ export class Foo {
10073
10181
  }
10074
10182
  }
10075
10183
  // Settings: {"jsdoc":{"mode":"typescript"}}
10184
+
10185
+ /**
10186
+ * @type {const}
10187
+ */
10188
+ const a = 'string';
10076
10189
  ````
10077
10190
 
10078
10191
 
10192
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-asterisk-prefix"></a>
10079
10193
  <a name="eslint-plugin-jsdoc-rules-require-asterisk-prefix"></a>
10080
10194
  ### <code>require-asterisk-prefix</code>
10081
10195
 
10082
10196
  Requires that each JSDoc line starts with an `*`.
10083
10197
 
10198
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-asterisk-prefix-options-22"></a>
10084
10199
  <a name="eslint-plugin-jsdoc-rules-require-asterisk-prefix-options-22"></a>
10085
10200
  #### Options
10086
10201
 
@@ -10092,6 +10207,7 @@ and use the `tags` option to apply to specific tags only.
10092
10207
 
10093
10208
  After the string option, one may add an object with the following.
10094
10209
 
10210
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-asterisk-prefix-options-22-tags-3"></a>
10095
10211
  <a name="eslint-plugin-jsdoc-rules-require-asterisk-prefix-options-22-tags-3"></a>
10096
10212
  ##### <code>tags</code>
10097
10213
 
@@ -10349,6 +10465,7 @@ function quux (foo) {
10349
10465
  ````
10350
10466
 
10351
10467
 
10468
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence"></a>
10352
10469
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence"></a>
10353
10470
  ### <code>require-description-complete-sentence</code>
10354
10471
 
@@ -10366,9 +10483,11 @@ Requires that block description, explicit `@description`, and
10366
10483
  * Periods after items within the `abbreviations` option array are not treated
10367
10484
  as sentence endings.
10368
10485
 
10486
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23"></a>
10369
10487
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23"></a>
10370
10488
  #### Options
10371
10489
 
10490
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-tags-4"></a>
10372
10491
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-tags-4"></a>
10373
10492
  ##### <code>tags</code>
10374
10493
 
@@ -10393,6 +10512,7 @@ its "description" (e.g., for `@returns {someType} some description`, the
10393
10512
  description is `some description` while for `@some-tag xyz`, the description
10394
10513
  is `xyz`).
10395
10514
 
10515
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-abbreviations"></a>
10396
10516
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-abbreviations"></a>
10397
10517
  ##### <code>abbreviations</code>
10398
10518
 
@@ -10400,6 +10520,7 @@ You can provide an `abbreviations` options array to avoid such strings of text
10400
10520
  being treated as sentence endings when followed by dots. The `.` is not
10401
10521
  necessary at the end of the array items.
10402
10522
 
10523
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-newlinebeforecapsassumesbadsentenceend"></a>
10403
10524
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-newlinebeforecapsassumesbadsentenceend"></a>
10404
10525
  ##### <code>newlineBeforeCapsAssumesBadSentenceEnd</code>
10405
10526
 
@@ -11059,6 +11180,7 @@ export default (foo) => {
11059
11180
  ````
11060
11181
 
11061
11182
 
11183
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description"></a>
11062
11184
  <a name="eslint-plugin-jsdoc-rules-require-description"></a>
11063
11185
  ### <code>require-description</code>
11064
11186
 
@@ -11071,6 +11193,7 @@ Requires that all functions have a description.
11071
11193
  is `"tag"`) must have a non-empty description that explains the purpose of
11072
11194
  the method.
11073
11195
 
11196
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-options-24"></a>
11074
11197
  <a name="eslint-plugin-jsdoc-rules-require-description-options-24"></a>
11075
11198
  #### Options
11076
11199
 
@@ -11612,6 +11735,7 @@ class quux {
11612
11735
  ````
11613
11736
 
11614
11737
 
11738
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example"></a>
11615
11739
  <a name="eslint-plugin-jsdoc-rules-require-example"></a>
11616
11740
  ### <code>require-example</code>
11617
11741
 
@@ -11621,11 +11745,13 @@ Requires that all functions have examples.
11621
11745
  * Every example tag must have a non-empty description that explains the
11622
11746
  method's usage.
11623
11747
 
11748
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25"></a>
11624
11749
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25"></a>
11625
11750
  #### Options
11626
11751
 
11627
11752
  This rule has an object option.
11628
11753
 
11754
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-exemptedby"></a>
11629
11755
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-exemptedby"></a>
11630
11756
  ##### <code>exemptedBy</code>
11631
11757
 
@@ -11635,12 +11761,14 @@ block avoids the need for an `@example`. Defaults to an array with
11635
11761
  so be sure to add back `inheritdoc` if you wish its presence to cause
11636
11762
  exemption of the rule.
11637
11763
 
11764
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-exemptnoarguments"></a>
11638
11765
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-exemptnoarguments"></a>
11639
11766
  ##### <code>exemptNoArguments</code>
11640
11767
 
11641
11768
  Boolean to indicate that no-argument functions should not be reported for
11642
11769
  missing `@example` declarations.
11643
11770
 
11771
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-contexts-6"></a>
11644
11772
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-contexts-6"></a>
11645
11773
  ##### <code>contexts</code>
11646
11774
 
@@ -11650,25 +11778,29 @@ Set this to an array of strings representing the AST context (or an object with
11650
11778
  classes). Overrides the default contexts (see below). Set to `"any"` if you
11651
11779
  want the rule to apply to any jsdoc block throughout your files.
11652
11780
 
11653
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
11781
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
11654
11782
  section of our README for more on the expected format.
11655
11783
 
11784
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-checkconstructors"></a>
11656
11785
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-checkconstructors"></a>
11657
11786
  ##### <code>checkConstructors</code>
11658
11787
 
11659
11788
  A value indicating whether `constructor`s should be checked.
11660
11789
  Defaults to `true`.
11661
11790
 
11791
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-checkgetters"></a>
11662
11792
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-checkgetters"></a>
11663
11793
  ##### <code>checkGetters</code>
11664
11794
 
11665
11795
  A value indicating whether getters should be checked. Defaults to `false`.
11666
11796
 
11797
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-checksetters"></a>
11667
11798
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-checksetters"></a>
11668
11799
  ##### <code>checkSetters</code>
11669
11800
 
11670
11801
  A value indicating whether setters should be checked. Defaults to `false`.
11671
11802
 
11803
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-fixer"></a>
11672
11804
  <a name="eslint-plugin-jsdoc-rules-require-example-fixer"></a>
11673
11805
  #### Fixer
11674
11806
 
@@ -11943,6 +12075,7 @@ function quux () {
11943
12075
  ````
11944
12076
 
11945
12077
 
12078
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-file-overview"></a>
11946
12079
  <a name="eslint-plugin-jsdoc-rules-require-file-overview"></a>
11947
12080
  ### <code>require-file-overview</code>
11948
12081
 
@@ -11956,9 +12089,11 @@ Checks that:
11956
12089
  as being when the overview tag is not preceded by anything other than
11957
12090
  a comment.
11958
12091
 
12092
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-file-overview-options-26"></a>
11959
12093
  <a name="eslint-plugin-jsdoc-rules-require-file-overview-options-26"></a>
11960
12094
  #### Options
11961
12095
 
12096
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-file-overview-options-26-tags-5"></a>
11962
12097
  <a name="eslint-plugin-jsdoc-rules-require-file-overview-options-26-tags-5"></a>
11963
12098
  ##### <code>tags</code>
11964
12099
 
@@ -12237,11 +12372,13 @@ function quux () {
12237
12372
  ````
12238
12373
 
12239
12374
 
12375
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-hyphen-before-param-description"></a>
12240
12376
  <a name="eslint-plugin-jsdoc-rules-require-hyphen-before-param-description"></a>
12241
12377
  ### <code>require-hyphen-before-param-description</code>
12242
12378
 
12243
12379
  Requires (or disallows) a hyphen before the `@param` description.
12244
12380
 
12381
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-hyphen-before-param-description-options-27"></a>
12245
12382
  <a name="eslint-plugin-jsdoc-rules-require-hyphen-before-param-description-options-27"></a>
12246
12383
  #### Options
12247
12384
 
@@ -12467,17 +12604,20 @@ function main(argv) {
12467
12604
  ````
12468
12605
 
12469
12606
 
12607
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc"></a>
12470
12608
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc"></a>
12471
12609
  ### <code>require-jsdoc</code>
12472
12610
 
12473
12611
  Checks for presence of jsdoc comments, on class declarations as well as
12474
12612
  functions.
12475
12613
 
12614
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28"></a>
12476
12615
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28"></a>
12477
12616
  #### Options
12478
12617
 
12479
12618
  Accepts one optional options object with the following optional keys.
12480
12619
 
12620
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-publiconly"></a>
12481
12621
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-publiconly"></a>
12482
12622
  ##### <code>publicOnly</code>
12483
12623
 
@@ -12494,6 +12634,7 @@ otherwise noted):
12494
12634
  - `cjs` - CommonJS exports are checked for JSDoc comments (Defaults to `true`)
12495
12635
  - `window` - Window global exports are checked for JSDoc comments
12496
12636
 
12637
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-require"></a>
12497
12638
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-require"></a>
12498
12639
  ##### <code>require</code>
12499
12640
 
@@ -12507,6 +12648,7 @@ An object with the following optional boolean keys which all default to
12507
12648
  - `FunctionExpression`
12508
12649
  - `MethodDefinition`
12509
12650
 
12651
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-contexts-7"></a>
12510
12652
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-contexts-7"></a>
12511
12653
  ##### <code>contexts</code>
12512
12654
 
@@ -12520,9 +12662,10 @@ block which will otherwise be added. Defaults to an empty array.
12520
12662
  Note that you may need to disable `require` items (e.g., `MethodDefinition`)
12521
12663
  if you are specifying a more precise form in `contexts` (e.g., `MethodDefinition:not([accessibility="private"] > FunctionExpression`).
12522
12664
 
12523
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
12665
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
12524
12666
  section of our README for more on the expected format.
12525
12667
 
12668
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-exemptemptyconstructors"></a>
12526
12669
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-exemptemptyconstructors"></a>
12527
12670
  ##### <code>exemptEmptyConstructors</code>
12528
12671
 
@@ -12532,6 +12675,7 @@ When `true`, the rule will not report missing jsdoc blocks above constructors
12532
12675
  with no parameters or return values (this is enabled by default as the class
12533
12676
  name or description should be seen as sufficient to convey intent).
12534
12677
 
12678
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-exemptemptyfunctions"></a>
12535
12679
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-exemptemptyfunctions"></a>
12536
12680
  ##### <code>exemptEmptyFunctions</code>
12537
12681
 
@@ -12541,6 +12685,7 @@ When `true`, the rule will not report missing jsdoc blocks above
12541
12685
  functions/methods with no parameters or return values (intended where
12542
12686
  function/method names are sufficient for themselves as documentation).
12543
12687
 
12688
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checkconstructors-1"></a>
12544
12689
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checkconstructors-1"></a>
12545
12690
  ##### <code>checkConstructors</code>
12546
12691
 
@@ -12548,6 +12693,7 @@ A value indicating whether `constructor`s should be checked. Defaults to
12548
12693
  `true`. When `true`, `exemptEmptyConstructors` may still avoid reporting when
12549
12694
  no parameters or return values are found.
12550
12695
 
12696
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checkgetters-1"></a>
12551
12697
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checkgetters-1"></a>
12552
12698
  ##### <code>checkGetters</code>
12553
12699
 
@@ -12557,6 +12703,7 @@ getters should be checked but only when there is no setter. This may be useful
12557
12703
  if one only wishes documentation on one of the two accessors. Defaults to
12558
12704
  `false`.
12559
12705
 
12706
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checksetters-1"></a>
12560
12707
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checksetters-1"></a>
12561
12708
  ##### <code>checkSetters</code>
12562
12709
 
@@ -12566,6 +12713,7 @@ setters should be checked but only when there is no getter. This may be useful
12566
12713
  if one only wishes documentation on one of the two accessors. Defaults to
12567
12714
  `false`.
12568
12715
 
12716
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-enablefixer-2"></a>
12569
12717
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-enablefixer-2"></a>
12570
12718
  ##### <code>enableFixer</code>
12571
12719
 
@@ -14156,14 +14304,17 @@ export class User {
14156
14304
  ````
14157
14305
 
14158
14306
 
14307
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-description"></a>
14159
14308
  <a name="eslint-plugin-jsdoc-rules-require-param-description"></a>
14160
14309
  ### <code>require-param-description</code>
14161
14310
 
14162
14311
  Requires that each `@param` tag has a `description` value.
14163
14312
 
14313
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-description-options-29"></a>
14164
14314
  <a name="eslint-plugin-jsdoc-rules-require-param-description-options-29"></a>
14165
14315
  #### Options
14166
14316
 
14317
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-description-options-29-contexts-8"></a>
14167
14318
  <a name="eslint-plugin-jsdoc-rules-require-param-description-options-29-contexts-8"></a>
14168
14319
  ##### <code>contexts</code>
14169
14320
 
@@ -14175,7 +14326,7 @@ for finding function blocks not attached to a function declaration or
14175
14326
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
14176
14327
  `@method`) (including those associated with an `@interface`).
14177
14328
 
14178
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
14329
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
14179
14330
  section of our README for more on the expected format.
14180
14331
 
14181
14332
  |||
@@ -14276,6 +14427,7 @@ function quux (foo) {
14276
14427
  ````
14277
14428
 
14278
14429
 
14430
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-name"></a>
14279
14431
  <a name="eslint-plugin-jsdoc-rules-require-param-name"></a>
14280
14432
  ### <code>require-param-name</code>
14281
14433
 
@@ -14285,9 +14437,11 @@ Requires that all function parameters have names.
14285
14437
  >
14286
14438
  > [JSDoc](https://jsdoc.app/tags-param.html#overview)
14287
14439
 
14440
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-name-options-30"></a>
14288
14441
  <a name="eslint-plugin-jsdoc-rules-require-param-name-options-30"></a>
14289
14442
  #### Options
14290
14443
 
14444
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-name-options-30-contexts-9"></a>
14291
14445
  <a name="eslint-plugin-jsdoc-rules-require-param-name-options-30-contexts-9"></a>
14292
14446
  ##### <code>contexts</code>
14293
14447
 
@@ -14299,7 +14453,7 @@ for finding function blocks not attached to a function declaration or
14299
14453
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
14300
14454
  `@method`) (including those associated with an `@interface`).
14301
14455
 
14302
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
14456
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
14303
14457
  section of our README for more on the expected format.
14304
14458
 
14305
14459
  |||
@@ -14416,14 +14570,17 @@ function example(cb) {
14416
14570
  ````
14417
14571
 
14418
14572
 
14573
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-type"></a>
14419
14574
  <a name="eslint-plugin-jsdoc-rules-require-param-type"></a>
14420
14575
  ### <code>require-param-type</code>
14421
14576
 
14422
14577
  Requires that each `@param` tag has a `type` value.
14423
14578
 
14579
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-type-options-31"></a>
14424
14580
  <a name="eslint-plugin-jsdoc-rules-require-param-type-options-31"></a>
14425
14581
  #### Options
14426
14582
 
14583
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-type-options-31-contexts-10"></a>
14427
14584
  <a name="eslint-plugin-jsdoc-rules-require-param-type-options-31-contexts-10"></a>
14428
14585
  ##### <code>contexts</code>
14429
14586
 
@@ -14435,7 +14592,7 @@ for finding function blocks not attached to a function declaration or
14435
14592
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
14436
14593
  `@method`) (including those associated with an `@interface`).
14437
14594
 
14438
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
14595
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
14439
14596
  section of our README for more on the expected format.
14440
14597
 
14441
14598
  |||
@@ -14536,11 +14693,13 @@ function quux (foo) {
14536
14693
  ````
14537
14694
 
14538
14695
 
14696
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param"></a>
14539
14697
  <a name="eslint-plugin-jsdoc-rules-require-param"></a>
14540
14698
  ### <code>require-param</code>
14541
14699
 
14542
14700
  Requires that all function parameters are documented.
14543
14701
 
14702
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1"></a>
14544
14703
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1"></a>
14545
14704
  #### Fixer
14546
14705
 
@@ -14548,6 +14707,7 @@ Adds `@param <name>` for each tag present in the function signature but
14548
14707
  missing in the jsdoc. Can be disabled by setting the `enableFixer`
14549
14708
  option to `false`.
14550
14709
 
14710
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1-destructured-object-and-array-naming"></a>
14551
14711
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1-destructured-object-and-array-naming"></a>
14552
14712
  ##### Destructured object and array naming
14553
14713
 
@@ -14600,6 +14760,7 @@ function quux ([foo, bar]) {
14600
14760
  */
14601
14761
  ```
14602
14762
 
14763
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1-missing-root-fixing"></a>
14603
14764
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1-missing-root-fixing"></a>
14604
14765
  ##### Missing root fixing
14605
14766
 
@@ -14635,6 +14796,7 @@ numeric component).
14635
14796
  And one can have the count begin at another number (e.g., `1`) by changing
14636
14797
  `autoIncrementBase` from the default of `0`.
14637
14798
 
14799
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1-rest-element-restelement-insertions"></a>
14638
14800
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1-rest-element-restelement-insertions"></a>
14639
14801
  ##### Rest Element (<code>RestElement</code>) insertions
14640
14802
 
@@ -14687,6 +14849,7 @@ function baar ([a, ...extra]) {
14687
14849
 
14688
14850
  ...because it does not use the `...` syntax in the type.
14689
14851
 
14852
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1-object-rest-property-insertions"></a>
14690
14853
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1-object-rest-property-insertions"></a>
14691
14854
  ##### Object Rest Property insertions
14692
14855
 
@@ -14722,16 +14885,19 @@ other properties, so in looking at the docs alone without looking at the
14722
14885
  function signature, it may appear that there is an actual property named
14723
14886
  `extra`.
14724
14887
 
14888
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32"></a>
14725
14889
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32"></a>
14726
14890
  #### Options
14727
14891
 
14728
14892
  An options object accepts the following optional properties:
14729
14893
 
14894
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-enablefixer-3"></a>
14730
14895
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-enablefixer-3"></a>
14731
14896
  ##### <code>enableFixer</code>
14732
14897
 
14733
14898
  Whether to enable the fixer. Defaults to `true`.
14734
14899
 
14900
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-enablerootfixer"></a>
14735
14901
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-enablerootfixer"></a>
14736
14902
  ##### <code>enableRootFixer</code>
14737
14903
 
@@ -14739,12 +14905,14 @@ Whether to enable the auto-adding of incrementing roots (see the "Fixer"
14739
14905
  section). Defaults to `true`. Has no effect if `enableFixer` is set to
14740
14906
  `false`.
14741
14907
 
14908
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-enablerestelementfixer"></a>
14742
14909
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-enablerestelementfixer"></a>
14743
14910
  ##### <code>enableRestElementFixer</code>
14744
14911
 
14745
14912
  Whether to enable the rest element fixer (see
14746
14913
  "Rest Element (`RestElement`) insertions"). Defaults to `true`.
14747
14914
 
14915
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkrestproperty-1"></a>
14748
14916
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkrestproperty-1"></a>
14749
14917
  ##### <code>checkRestProperty</code>
14750
14918
 
@@ -14799,12 +14967,14 @@ function quux ({num, ...extra}) {
14799
14967
  }
14800
14968
  ```
14801
14969
 
14970
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-autoincrementbase"></a>
14802
14971
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-autoincrementbase"></a>
14803
14972
  ##### <code>autoIncrementBase</code>
14804
14973
 
14805
14974
  Numeric to indicate the number at which to begin auto-incrementing roots.
14806
14975
  Defaults to `0`.
14807
14976
 
14977
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-unnamedrootbase"></a>
14808
14978
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-unnamedrootbase"></a>
14809
14979
  ##### <code>unnamedRootBase</code>
14810
14980
 
@@ -14831,6 +15001,7 @@ function quux ({foo}, [bar], {baz}) {
14831
15001
  */
14832
15002
  ```
14833
15003
 
15004
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-exemptedby-1"></a>
14834
15005
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-exemptedby-1"></a>
14835
15006
  ##### <code>exemptedBy</code>
14836
15007
 
@@ -14840,6 +15011,7 @@ avoids the need for a `@param`. Defaults to an array with
14840
15011
  so be sure to add back `inheritdoc` if you wish its presence to cause
14841
15012
  exemption of the rule.
14842
15013
 
15014
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checktypespattern-1"></a>
14843
15015
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checktypespattern-1"></a>
14844
15016
  ##### <code>checkTypesPattern</code>
14845
15017
 
@@ -14875,6 +15047,7 @@ You could set this regular expression to a more expansive list, or you
14875
15047
  could restrict it such that even types matching those strings would not
14876
15048
  need destructuring.
14877
15049
 
15050
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-contexts-11"></a>
14878
15051
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-contexts-11"></a>
14879
15052
  ##### <code>contexts</code>
14880
15053
 
@@ -14884,30 +15057,35 @@ Overrides the default contexts (see below). May be useful for adding such as
14884
15057
  `TSMethodSignature` in TypeScript or restricting the contexts
14885
15058
  which are checked.
14886
15059
 
14887
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
15060
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
14888
15061
  section of our README for more on the expected format.
14889
15062
 
15063
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkconstructors-2"></a>
14890
15064
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkconstructors-2"></a>
14891
15065
  ##### <code>checkConstructors</code>
14892
15066
 
14893
15067
  A value indicating whether `constructor`s should be checked. Defaults to
14894
15068
  `true`.
14895
15069
 
15070
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkgetters-2"></a>
14896
15071
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkgetters-2"></a>
14897
15072
  ##### <code>checkGetters</code>
14898
15073
 
14899
15074
  A value indicating whether getters should be checked. Defaults to `false`.
14900
15075
 
15076
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checksetters-2"></a>
14901
15077
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checksetters-2"></a>
14902
15078
  ##### <code>checkSetters</code>
14903
15079
 
14904
15080
  A value indicating whether setters should be checked. Defaults to `false`.
14905
15081
 
15082
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkdestructured-1"></a>
14906
15083
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkdestructured-1"></a>
14907
15084
  ##### <code>checkDestructured</code>
14908
15085
 
14909
15086
  Whether to require destructured properties. Defaults to `true`.
14910
15087
 
15088
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkdestructuredroots"></a>
14911
15089
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkdestructuredroots"></a>
14912
15090
  ##### <code>checkDestructuredRoots</code>
14913
15091
 
@@ -14921,6 +15099,7 @@ implied to be `false` (i.e., the inside of the roots will not be checked
14921
15099
  either, e.g., it will also not complain if `a` or `b` do not have their own
14922
15100
  documentation). Defaults to `true`.
14923
15101
 
15102
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-usedefaultobjectproperties-1"></a>
14924
15103
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-usedefaultobjectproperties-1"></a>
14925
15104
  ##### <code>useDefaultObjectProperties</code>
14926
15105
 
@@ -16264,6 +16443,7 @@ export function testFn1 ({ prop = { a: 1, b: 2 } }) {
16264
16443
  ````
16265
16444
 
16266
16445
 
16446
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property"></a>
16267
16447
  <a name="eslint-plugin-jsdoc-rules-require-property"></a>
16268
16448
  ### <code>require-property</code>
16269
16449
 
@@ -16273,6 +16453,7 @@ when their type is a plain `object`, `Object`, or `PlainObject`.
16273
16453
  Note that any other type, including a subtype of object such as
16274
16454
  `object<string, string>`, will not be reported.
16275
16455
 
16456
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property-fixer-2"></a>
16276
16457
  <a name="eslint-plugin-jsdoc-rules-require-property-fixer-2"></a>
16277
16458
  #### Fixer
16278
16459
 
@@ -16371,6 +16552,7 @@ function quux () {
16371
16552
  ````
16372
16553
 
16373
16554
 
16555
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property-description"></a>
16374
16556
  <a name="eslint-plugin-jsdoc-rules-require-property-description"></a>
16375
16557
  ### <code>require-property-description</code>
16376
16558
 
@@ -16440,6 +16622,7 @@ The following patterns are not considered problems:
16440
16622
  ````
16441
16623
 
16442
16624
 
16625
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property-name"></a>
16443
16626
  <a name="eslint-plugin-jsdoc-rules-require-property-name"></a>
16444
16627
  ### <code>require-property-name</code>
16445
16628
 
@@ -16500,6 +16683,7 @@ The following patterns are not considered problems:
16500
16683
  ````
16501
16684
 
16502
16685
 
16686
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property-type"></a>
16503
16687
  <a name="eslint-plugin-jsdoc-rules-require-property-type"></a>
16504
16688
  ### <code>require-property-type</code>
16505
16689
 
@@ -16560,6 +16744,7 @@ The following patterns are not considered problems:
16560
16744
  ````
16561
16745
 
16562
16746
 
16747
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-check"></a>
16563
16748
  <a name="eslint-plugin-jsdoc-rules-require-returns-check"></a>
16564
16749
  ### <code>require-returns-check</code>
16565
16750
 
@@ -16572,6 +16757,7 @@ is set to `false` no non-`undefined` returned or resolved value is found.
16572
16757
 
16573
16758
  Will also report if multiple `@returns` tags are present.
16574
16759
 
16760
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-check-options-33"></a>
16575
16761
  <a name="eslint-plugin-jsdoc-rules-require-returns-check-options-33"></a>
16576
16762
  #### Options
16577
16763
 
@@ -17149,6 +17335,7 @@ function * quux() {}
17149
17335
  ````
17150
17336
 
17151
17337
 
17338
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-description"></a>
17152
17339
  <a name="eslint-plugin-jsdoc-rules-require-returns-description"></a>
17153
17340
  ### <code>require-returns-description</code>
17154
17341
 
@@ -17156,9 +17343,11 @@ Requires that the `@returns` tag has a `description` value. The error
17156
17343
  will not be reported if the return value is `void` or `undefined`
17157
17344
  or if it is `Promise<void>` or `Promise<undefined>`.
17158
17345
 
17346
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-description-options-34"></a>
17159
17347
  <a name="eslint-plugin-jsdoc-rules-require-returns-description-options-34"></a>
17160
17348
  #### Options
17161
17349
 
17350
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-description-options-34-contexts-12"></a>
17162
17351
  <a name="eslint-plugin-jsdoc-rules-require-returns-description-options-34-contexts-12"></a>
17163
17352
  ##### <code>contexts</code>
17164
17353
 
@@ -17170,7 +17359,7 @@ for finding function blocks not attached to a function declaration or
17170
17359
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
17171
17360
  `@method`) (including those associated with an `@interface`).
17172
17361
 
17173
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
17362
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
17174
17363
  section of our README for more on the expected format.
17175
17364
 
17176
17365
  |||
@@ -17307,14 +17496,17 @@ function quux () {
17307
17496
  ````
17308
17497
 
17309
17498
 
17499
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-type"></a>
17310
17500
  <a name="eslint-plugin-jsdoc-rules-require-returns-type"></a>
17311
17501
  ### <code>require-returns-type</code>
17312
17502
 
17313
17503
  Requires that `@returns` tag has `type` value.
17314
17504
 
17505
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-type-options-35"></a>
17315
17506
  <a name="eslint-plugin-jsdoc-rules-require-returns-type-options-35"></a>
17316
17507
  #### Options
17317
17508
 
17509
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-type-options-35-contexts-13"></a>
17318
17510
  <a name="eslint-plugin-jsdoc-rules-require-returns-type-options-35-contexts-13"></a>
17319
17511
  ##### <code>contexts</code>
17320
17512
 
@@ -17326,7 +17518,7 @@ for finding function blocks not attached to a function declaration or
17326
17518
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
17327
17519
  `@method`) (including those associated with an `@interface`).
17328
17520
 
17329
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
17521
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
17330
17522
  section of our README for more on the expected format.
17331
17523
 
17332
17524
  |||
@@ -17428,6 +17620,7 @@ function quux () {
17428
17620
  ````
17429
17621
 
17430
17622
 
17623
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns"></a>
17431
17624
  <a name="eslint-plugin-jsdoc-rules-require-returns"></a>
17432
17625
  ### <code>require-returns</code>
17433
17626
 
@@ -17435,6 +17628,7 @@ Requires that returns are documented.
17435
17628
 
17436
17629
  Will also report if multiple `@returns` tags are present.
17437
17630
 
17631
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-options-36"></a>
17438
17632
  <a name="eslint-plugin-jsdoc-rules-require-returns-options-36"></a>
17439
17633
  #### Options
17440
17634
 
@@ -17700,14 +17894,6 @@ class quux {
17700
17894
  // "jsdoc/require-returns": ["error"|"warn", {"contexts":["any"],"forceRequireReturn":true}]
17701
17895
  // Message: Missing JSDoc @returns declaration.
17702
17896
 
17703
- /**
17704
- * @param {array} a
17705
- */
17706
- async function foo(a) {
17707
- return Promise.all(a);
17708
- }
17709
- // Message: Missing JSDoc @returns declaration.
17710
-
17711
17897
  /**
17712
17898
  *
17713
17899
  */
@@ -18005,6 +18191,21 @@ export function f(): string {
18005
18191
  }
18006
18192
  // "jsdoc/require-returns": ["error"|"warn", {"contexts":[":not(BlockStatement) > FunctionDeclaration","MethodDefinition","TSMethodSignature","TSPropertySignature > TSTypeAnnotation > TSFunctionType"]}]
18007
18193
  // Message: Missing JSDoc @returns declaration.
18194
+
18195
+ /**
18196
+ * @param ms time in millis
18197
+ */
18198
+ export const sleep = (ms: number) =>
18199
+ new Promise<string>((res) => setTimeout(res, ms));
18200
+ // Message: Missing JSDoc @returns declaration.
18201
+
18202
+ /**
18203
+ * @param ms time in millis
18204
+ */
18205
+ export const sleep = (ms: number) => {
18206
+ return new Promise<string>((res) => setTimeout(res, ms));
18207
+ };
18208
+ // Message: Missing JSDoc @returns declaration.
18008
18209
  ````
18009
18210
 
18010
18211
  The following patterns are not considered problems:
@@ -18488,14 +18689,36 @@ function quux () {
18488
18689
  async function foo() {
18489
18690
  return new Promise(resolve => resolve());
18490
18691
  }
18692
+
18693
+ /**
18694
+ * @param {array} a
18695
+ */
18696
+ async function foo(a) {
18697
+ return Promise.all(a);
18698
+ }
18699
+
18700
+ /**
18701
+ * @param ms time in millis
18702
+ */
18703
+ export const sleep = (ms: number) =>
18704
+ new Promise<void>((res) => setTimeout(res, ms));
18705
+
18706
+ /**
18707
+ * @param ms time in millis
18708
+ */
18709
+ export const sleep = (ms: number) => {
18710
+ return new Promise<void>((res) => setTimeout(res, ms));
18711
+ };
18491
18712
  ````
18492
18713
 
18493
18714
 
18715
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-throws"></a>
18494
18716
  <a name="eslint-plugin-jsdoc-rules-require-throws"></a>
18495
18717
  ### <code>require-throws</code>
18496
18718
 
18497
18719
  Requires that throw statements are documented.
18498
18720
 
18721
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-throws-options-37"></a>
18499
18722
  <a name="eslint-plugin-jsdoc-rules-require-throws-options-37"></a>
18500
18723
  #### Options
18501
18724
 
@@ -18789,6 +19012,7 @@ function quux (foo) {
18789
19012
  ````
18790
19013
 
18791
19014
 
19015
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-yields"></a>
18792
19016
  <a name="eslint-plugin-jsdoc-rules-require-yields"></a>
18793
19017
  ### <code>require-yields</code>
18794
19018
 
@@ -18799,6 +19023,7 @@ Will also report if multiple `@yields` tags are present.
18799
19023
  See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an
18800
19024
  option to expect a non-standard `@next` tag.
18801
19025
 
19026
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-yields-options-38"></a>
18802
19027
  <a name="eslint-plugin-jsdoc-rules-require-yields-options-38"></a>
18803
19028
  #### Options
18804
19029
 
@@ -19591,6 +19816,7 @@ function * quux (foo) {
19591
19816
  ````
19592
19817
 
19593
19818
 
19819
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-yields-check"></a>
19594
19820
  <a name="eslint-plugin-jsdoc-rules-require-yields-check"></a>
19595
19821
  ### <code>require-yields-check</code>
19596
19822
 
@@ -19609,6 +19835,7 @@ function bodies.
19609
19835
 
19610
19836
  Will also report if multiple `@yields` tags are present.
19611
19837
 
19838
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-yields-check-options-39"></a>
19612
19839
  <a name="eslint-plugin-jsdoc-rules-require-yields-check-options-39"></a>
19613
19840
  #### Options
19614
19841
 
@@ -20113,6 +20340,7 @@ function * quux (foo) {
20113
20340
  ````
20114
20341
 
20115
20342
 
20343
+ <a name="user-content-eslint-plugin-jsdoc-rules-sort-tags"></a>
20116
20344
  <a name="eslint-plugin-jsdoc-rules-sort-tags"></a>
20117
20345
  ### <code>sort-tags</code>
20118
20346
 
@@ -20120,9 +20348,11 @@ Sorts tags by a specified sequence according to tag name.
20120
20348
 
20121
20349
  (Default order originally inspired by [`@homer0/prettier-plugin-jsdoc`](https://github.com/homer0/packages/tree/main/packages/public/prettier-plugin-jsdoc).)
20122
20350
 
20351
+ <a name="user-content-eslint-plugin-jsdoc-rules-sort-tags-options-40"></a>
20123
20352
  <a name="eslint-plugin-jsdoc-rules-sort-tags-options-40"></a>
20124
20353
  #### Options
20125
20354
 
20355
+ <a name="user-content-eslint-plugin-jsdoc-rules-sort-tags-options-40-tagsequence"></a>
20126
20356
  <a name="eslint-plugin-jsdoc-rules-sort-tags-options-40-tagsequence"></a>
20127
20357
  ##### <code>tagSequence</code>
20128
20358
 
@@ -20299,6 +20529,7 @@ a fixed order that doesn't change into the future, supply your own
20299
20529
  ];
20300
20530
  ```
20301
20531
 
20532
+ <a name="user-content-eslint-plugin-jsdoc-rules-sort-tags-options-40-alphabetizeextras"></a>
20302
20533
  <a name="eslint-plugin-jsdoc-rules-sort-tags-options-40-alphabetizeextras"></a>
20303
20534
  ##### <code>alphabetizeExtras</code>
20304
20535
 
@@ -20450,11 +20681,13 @@ function quux () {}
20450
20681
  ````
20451
20682
 
20452
20683
 
20684
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines"></a>
20453
20685
  <a name="eslint-plugin-jsdoc-rules-tag-lines"></a>
20454
20686
  ### <code>tag-lines</code>
20455
20687
 
20456
20688
  Enforces lines (or no lines) between tags.
20457
20689
 
20690
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines-options-41"></a>
20458
20691
  <a name="eslint-plugin-jsdoc-rules-tag-lines-options-41"></a>
20459
20692
  #### Options
20460
20693
 
@@ -20466,17 +20699,20 @@ for particular tags).
20466
20699
 
20467
20700
  The second option is an object with the following optional properties.
20468
20701
 
20702
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines-options-41-count-defaults-to-1"></a>
20469
20703
  <a name="eslint-plugin-jsdoc-rules-tag-lines-options-41-count-defaults-to-1"></a>
20470
20704
  ##### <code>count</code> (defaults to 1)
20471
20705
 
20472
20706
  Use with "always" to indicate the number of lines to require be present.
20473
20707
 
20708
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines-options-41-noendlines-defaults-to-false"></a>
20474
20709
  <a name="eslint-plugin-jsdoc-rules-tag-lines-options-41-noendlines-defaults-to-false"></a>
20475
20710
  ##### <code>noEndLines</code> (defaults to <code>false</code>)
20476
20711
 
20477
20712
  Use with "always" to indicate the normal lines to be added after tags should
20478
20713
  not be added after the final tag.
20479
20714
 
20715
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines-options-41-tags-default-to-empty-object"></a>
20480
20716
  <a name="eslint-plugin-jsdoc-rules-tag-lines-options-41-tags-default-to-empty-object"></a>
20481
20717
  ##### <code>tags</code> (default to empty object)
20482
20718
 
@@ -20793,13 +21029,14 @@ The following patterns are not considered problems:
20793
21029
  ````
20794
21030
 
20795
21031
 
21032
+ <a name="user-content-eslint-plugin-jsdoc-rules-valid-types"></a>
20796
21033
  <a name="eslint-plugin-jsdoc-rules-valid-types"></a>
20797
21034
  ### <code>valid-types</code>
20798
21035
 
20799
21036
  Requires all types to be valid JSDoc, Closure, or TypeScript compiler types
20800
21037
  without syntax errors. Note that what determines a valid type is handled by
20801
21038
  our type parsing engine, [jsdoc-type-pratt-parser](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser),
20802
- using [`settings.jsdoc.mode`](#eslint-plugin-jsdoc-settings-mode) to
21039
+ using [`settings.jsdoc.mode`](#user-content-eslint-plugin-jsdoc-settings-mode) to
20803
21040
  determine whether to use jsdoc-type-pratt-parser's "permissive" parsing or
20804
21041
  the stricter "jsdoc", "typescript", "closure" modes.
20805
21042
 
@@ -20873,6 +21110,7 @@ for valid types (based on the tag's `type` value), and either portion checked
20873
21110
  for presence (based on `false` `name` or `type` values or their `required`
20874
21111
  value). See the setting for more details.
20875
21112
 
21113
+ <a name="user-content-eslint-plugin-jsdoc-rules-valid-types-options-42"></a>
20876
21114
  <a name="eslint-plugin-jsdoc-rules-valid-types-options-42"></a>
20877
21115
  #### Options
20878
21116