eslint-plugin-jsdoc 37.9.5 → 38.0.0

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
 
@@ -6537,7 +6608,7 @@ The default is this basic expression to match English sentences (Support
6537
6608
  for Unicode upper case may be added in a future version when it can be handled
6538
6609
  by our supported Node versions):
6539
6610
 
6540
- ``^([A-Z]|[`\\d_])[\\s\\S]*[.?!`]$``
6611
+ ``^([A-Z]|[`\\d_])[\\s\\S]*[.?!`]\\s*$``
6541
6612
 
6542
6613
  Applies to the jsdoc block description and `@description` (or `@desc`)
6543
6614
  by default but the `tags` option (see below) may be used to match other tags.
@@ -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
  |||
@@ -6883,7 +6960,7 @@ function quux (foo) {
6883
6960
  function quux (foo) {
6884
6961
 
6885
6962
  }
6886
- // "jsdoc/match-description": ["error"|"warn", {"mainDescription":"^[a-zA-Z]*$","tags":{"param":true}}]
6963
+ // "jsdoc/match-description": ["error"|"warn", {"mainDescription":"^[a-zA-Z]*\\s*$","tags":{"param":true}}]
6887
6964
  // Message: JSDoc description does not satisfy the regex pattern.
6888
6965
 
6889
6966
  /**
@@ -6894,7 +6971,7 @@ function quux (foo) {
6894
6971
  function quux (foo) {
6895
6972
 
6896
6973
  }
6897
- // "jsdoc/match-description": ["error"|"warn", {"mainDescription":{"match":"^[a-zA-Z]*$","message":"Letters only"},"tags":{"param":{"match":true,"message":"Needs to begin with a capital letter and end with a period."}}}]
6974
+ // "jsdoc/match-description": ["error"|"warn", {"mainDescription":{"match":"^[a-zA-Z]*\\s*$","message":"Letters only"},"tags":{"param":{"match":true,"message":"Needs to begin with a capital letter and end with a period."}}}]
6898
6975
  // Message: Needs to begin with a capital letter and end with a period.
6899
6976
 
6900
6977
  /**
@@ -7074,6 +7151,16 @@ function quux (foo) {
7074
7151
  }
7075
7152
  // Settings: {"jsdoc":{"tagNamePreference":{"description":false}}}
7076
7153
  // Message: JSDoc description does not satisfy the regex pattern.
7154
+
7155
+ /**
7156
+ * Description with extra new line
7157
+ *
7158
+ */
7159
+ function quux () {
7160
+
7161
+ }
7162
+ // "jsdoc/match-description": ["error"|"warn", {"matchDescription":"[\\s\\S]*\\S$"}]
7163
+ // Message: JSDoc description does not satisfy the regex pattern.
7077
7164
  ````
7078
7165
 
7079
7166
  The following patterns are not considered problems:
@@ -7432,6 +7519,7 @@ function quux () {
7432
7519
  ````
7433
7520
 
7434
7521
 
7522
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-name"></a>
7435
7523
  <a name="eslint-plugin-jsdoc-rules-match-name"></a>
7436
7524
  ### <code>match-name</code>
7437
7525
 
@@ -7444,11 +7532,13 @@ name will actually be part of the description (e.g., for
7444
7532
  `structuredTags` setting (if `name: false`, this rule will not apply to
7445
7533
  that tag).
7446
7534
 
7535
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-name-options-12"></a>
7447
7536
  <a name="eslint-plugin-jsdoc-rules-match-name-options-12"></a>
7448
7537
  #### Options
7449
7538
 
7450
7539
  A single options object with the following properties:
7451
7540
 
7541
+ <a name="user-content-eslint-plugin-jsdoc-rules-match-name-options-12-match"></a>
7452
7542
  <a name="eslint-plugin-jsdoc-rules-match-name-options-12-match"></a>
7453
7543
  ##### <code>match</code>
7454
7544
 
@@ -7473,7 +7563,7 @@ properties, all of which act to confine one another:
7473
7563
 
7474
7564
  - `context` - AST to confine the allowing or disallowing to jsdoc blocks
7475
7565
  associated with a particular context. See the
7476
- ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
7566
+ ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
7477
7567
  section of our README for more on the expected format.
7478
7568
  - `comment` - As with `context` but AST for the JSDoc block comment and types
7479
7569
 
@@ -7643,6 +7733,7 @@ class A {
7643
7733
  ````
7644
7734
 
7645
7735
 
7736
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks"></a>
7646
7737
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks"></a>
7647
7738
  ### <code>multiline-blocks</code>
7648
7739
 
@@ -7655,11 +7746,13 @@ all jsdoc blocks!
7655
7746
 
7656
7747
  Also allows for preventing text at the very beginning or very end of blocks.
7657
7748
 
7749
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13"></a>
7658
7750
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13"></a>
7659
7751
  #### Options
7660
7752
 
7661
7753
  A single options object with the following properties.
7662
7754
 
7755
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nozerolinetext-defaults-to-true"></a>
7663
7756
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nozerolinetext-defaults-to-true"></a>
7664
7757
  ##### <code>noZeroLineText</code> (defaults to <code>true</code>)
7665
7758
 
@@ -7668,6 +7761,7 @@ space will be reported. (Text after a newline is not reported.)
7668
7761
 
7669
7762
  `noMultilineBlocks` will have priority over this rule if it applies.
7670
7763
 
7764
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nofinallinetext-defaults-to-true"></a>
7671
7765
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nofinallinetext-defaults-to-true"></a>
7672
7766
  ##### <code>noFinalLineText</code> (defaults to <code>true</code>)
7673
7767
 
@@ -7676,12 +7770,14 @@ line will be reported. (Text preceding a newline is not reported.)
7676
7770
 
7677
7771
  `noMultilineBlocks` will have priority over this rule if it applies.
7678
7772
 
7773
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nosinglelineblocks-defaults-to-false"></a>
7679
7774
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nosinglelineblocks-defaults-to-false"></a>
7680
7775
  ##### <code>noSingleLineBlocks</code> (defaults to <code>false</code>)
7681
7776
 
7682
7777
  If this is `true`, any single line blocks will be reported, except those which
7683
7778
  are whitelisted in `singleLineTags`.
7684
7779
 
7780
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-singlelinetags-defaults-to-lends-type"></a>
7685
7781
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-singlelinetags-defaults-to-lends-type"></a>
7686
7782
  ##### <code>singleLineTags</code> (defaults to <code>[&#39;lends&#39;, &#39;type&#39;]</code>)
7687
7783
 
@@ -7691,6 +7787,7 @@ cause all single line blocks to be reported. If `'*'` is present, then
7691
7787
  the presence of a tag will allow single line blocks (but not if a tag is
7692
7788
  missing).
7693
7789
 
7790
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nomultilineblocks-defaults-to-false"></a>
7694
7791
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-nomultilineblocks-defaults-to-false"></a>
7695
7792
  ##### <code>noMultilineBlocks</code> (defaults to <code>false</code>)
7696
7793
 
@@ -7698,6 +7795,7 @@ Requires that jsdoc blocks are restricted to single lines only unless impacted
7698
7795
  by the options `minimumLengthForMultiline`, `multilineTags`, or
7699
7796
  `allowMultipleTags`.
7700
7797
 
7798
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-minimumlengthformultiline-defaults-to-not-being-in-effect"></a>
7701
7799
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-minimumlengthformultiline-defaults-to-not-being-in-effect"></a>
7702
7800
  ##### <code>minimumLengthForMultiline</code> (defaults to not being in effect)
7703
7801
 
@@ -7707,6 +7805,7 @@ be permitted if containing at least the given amount of text.
7707
7805
  If not set, multiline blocks will not be permitted regardless of length unless
7708
7806
  a relevant tag is present and `multilineTags` is set.
7709
7807
 
7808
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-multilinetags-defaults-to"></a>
7710
7809
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-multilinetags-defaults-to"></a>
7711
7810
  ##### <code>multilineTags</code> (defaults to <code>[&#39;*&#39;]</code>)
7712
7811
 
@@ -7723,6 +7822,7 @@ such a tag will cause multiline blocks to be allowed.
7723
7822
  You may set this to an empty array to prevent any tag from permitting multiple
7724
7823
  lines.
7725
7824
 
7825
+ <a name="user-content-eslint-plugin-jsdoc-rules-multiline-blocks-options-13-allowmultipletags-defaults-to-true"></a>
7726
7826
  <a name="eslint-plugin-jsdoc-rules-multiline-blocks-options-13-allowmultipletags-defaults-to-true"></a>
7727
7827
  ##### <code>allowMultipleTags</code> (defaults to <code>true</code>)
7728
7828
 
@@ -8010,11 +8110,13 @@ The following patterns are not considered problems:
8010
8110
  ````
8011
8111
 
8012
8112
 
8113
+ <a name="user-content-eslint-plugin-jsdoc-rules-newline-after-description"></a>
8013
8114
  <a name="eslint-plugin-jsdoc-rules-newline-after-description"></a>
8014
8115
  ### <code>newline-after-description</code>
8015
8116
 
8016
8117
  Enforces a consistent padding of the block description.
8017
8118
 
8119
+ <a name="user-content-eslint-plugin-jsdoc-rules-newline-after-description-options-14"></a>
8018
8120
  <a name="eslint-plugin-jsdoc-rules-newline-after-description-options-14"></a>
8019
8121
  #### Options
8020
8122
 
@@ -8249,6 +8351,7 @@ function example() {
8249
8351
  ````
8250
8352
 
8251
8353
 
8354
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-bad-blocks"></a>
8252
8355
  <a name="eslint-plugin-jsdoc-rules-no-bad-blocks"></a>
8253
8356
  ### <code>no-bad-blocks</code>
8254
8357
 
@@ -8258,11 +8361,13 @@ asterisks, but which appear to be intended as jsdoc blocks due to the presence
8258
8361
  of whitespace followed by whitespace or asterisks, and
8259
8362
  an at-sign (`@`) and some non-whitespace (as with a jsdoc block tag).
8260
8363
 
8364
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-bad-blocks-options-15"></a>
8261
8365
  <a name="eslint-plugin-jsdoc-rules-no-bad-blocks-options-15"></a>
8262
8366
  #### Options
8263
8367
 
8264
8368
  Takes an optional options object with the following.
8265
8369
 
8370
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-bad-blocks-options-15-ignore"></a>
8266
8371
  <a name="eslint-plugin-jsdoc-rules-no-bad-blocks-options-15-ignore"></a>
8267
8372
  ##### <code>ignore</code>
8268
8373
 
@@ -8272,6 +8377,7 @@ a multi-comment block and at-sign `/* @`.
8272
8377
  Defaults to `['ts-check', 'ts-expect-error', 'ts-ignore', 'ts-nocheck']`
8273
8378
  (some directives [used by TypeScript](https://www.typescriptlang.org/docs/handbook/intro-to-js-ts.html#ts-check)).
8274
8379
 
8380
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-bad-blocks-options-15-preventallmultiasteriskblocks"></a>
8275
8381
  <a name="eslint-plugin-jsdoc-rules-no-bad-blocks-options-15-preventallmultiasteriskblocks"></a>
8276
8382
  ##### <code>preventAllMultiAsteriskBlocks</code>
8277
8383
 
@@ -8394,6 +8500,7 @@ function quux (foo) {
8394
8500
  ````
8395
8501
 
8396
8502
 
8503
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-defaults"></a>
8397
8504
  <a name="eslint-plugin-jsdoc-rules-no-defaults"></a>
8398
8505
  ### <code>no-defaults</code>
8399
8506
 
@@ -8409,9 +8516,11 @@ tag is attached).
8409
8516
  Unless your `@default` is on a function, you will need to set `contexts`
8410
8517
  to an appropriate context, including, if you wish, "any".
8411
8518
 
8519
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-defaults-options-16"></a>
8412
8520
  <a name="eslint-plugin-jsdoc-rules-no-defaults-options-16"></a>
8413
8521
  #### Options
8414
8522
 
8523
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-defaults-options-16-nooptionalparamnames"></a>
8415
8524
  <a name="eslint-plugin-jsdoc-rules-no-defaults-options-16-nooptionalparamnames"></a>
8416
8525
  ##### <code>noOptionalParamNames</code>
8417
8526
 
@@ -8421,6 +8530,7 @@ the presence of ES6 default parameters (bearing in mind that such
8421
8530
  "defaults" are only applied when the supplied value is missing or
8422
8531
  `undefined` but not for `null` or other "falsey" values).
8423
8532
 
8533
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-defaults-options-16-contexts-2"></a>
8424
8534
  <a name="eslint-plugin-jsdoc-rules-no-defaults-options-16-contexts-2"></a>
8425
8535
  ##### <code>contexts</code>
8426
8536
 
@@ -8432,7 +8542,7 @@ for finding function blocks not attached to a function declaration or
8432
8542
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
8433
8543
  `@method`) (including those associated with an `@interface`).
8434
8544
 
8435
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
8545
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
8436
8546
  section of our README for more on the expected format.
8437
8547
 
8438
8548
  |||
@@ -8569,6 +8679,7 @@ const a = {};
8569
8679
  ````
8570
8680
 
8571
8681
 
8682
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-missing-syntax"></a>
8572
8683
  <a name="eslint-plugin-jsdoc-rules-no-missing-syntax"></a>
8573
8684
  ### <code>no-missing-syntax</code>
8574
8685
 
@@ -8606,9 +8717,11 @@ which are not adequate to satisfy a condition, e.g.,
8606
8717
  not report if there were only a function declaration of the name "ignoreMe"
8607
8718
  (though it would report by function declarations of other names).
8608
8719
 
8720
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-missing-syntax-options-17"></a>
8609
8721
  <a name="eslint-plugin-jsdoc-rules-no-missing-syntax-options-17"></a>
8610
8722
  #### Options
8611
8723
 
8724
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-missing-syntax-options-17-contexts-3"></a>
8612
8725
  <a name="eslint-plugin-jsdoc-rules-no-missing-syntax-options-17-contexts-3"></a>
8613
8726
  ##### <code>contexts</code>
8614
8727
 
@@ -8627,7 +8740,7 @@ your files (as is necessary for finding function blocks not attached to a
8627
8740
  function declaration or expression, i.e., `@callback` or `@function` (or its
8628
8741
  aliases `@func` or `@method`) (including those associated with an `@interface`).
8629
8742
 
8630
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
8743
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
8631
8744
  section of our README for more on the expected format.
8632
8745
 
8633
8746
  |||
@@ -8806,6 +8919,7 @@ function quux () {
8806
8919
  ````
8807
8920
 
8808
8921
 
8922
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks"></a>
8809
8923
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks"></a>
8810
8924
  ### <code>no-multi-asterisks</code>
8811
8925
 
@@ -8815,9 +8929,11 @@ Note that if you wish to prevent multiple asterisks at the very beginning of
8815
8929
  the jsdoc block, you should use `no-bad-blocks` (as that is not proper jsdoc
8816
8930
  and that rule is for catching blocks which only seem like jsdoc).
8817
8931
 
8932
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18"></a>
8818
8933
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18"></a>
8819
8934
  #### Options
8820
8935
 
8936
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-allowwhitespace-defaults-to-false"></a>
8821
8937
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-allowwhitespace-defaults-to-false"></a>
8822
8938
  ##### <code>allowWhitespace</code> (defaults to <code>false</code>)
8823
8939
 
@@ -8829,6 +8945,7 @@ Set to `true` if you wish to allow asterisks after a space (as with Markdown):
8829
8945
  */
8830
8946
  ```
8831
8947
 
8948
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-preventatmiddlelines-defaults-to-true"></a>
8832
8949
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-preventatmiddlelines-defaults-to-true"></a>
8833
8950
  ##### <code>preventAtMiddleLines</code> (defaults to <code>true</code>)
8834
8951
 
@@ -8841,6 +8958,7 @@ Prevent the likes of this:
8841
8958
  */
8842
8959
  ```
8843
8960
 
8961
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-preventatend-defaults-to-true"></a>
8844
8962
  <a name="eslint-plugin-jsdoc-rules-no-multi-asterisks-options-18-preventatend-defaults-to-true"></a>
8845
8963
  ##### <code>preventAtEnd</code> (defaults to <code>true</code>)
8846
8964
 
@@ -9058,6 +9176,7 @@ function foo() {
9058
9176
  ````
9059
9177
 
9060
9178
 
9179
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-restricted-syntax"></a>
9061
9180
  <a name="eslint-plugin-jsdoc-rules-no-restricted-syntax"></a>
9062
9181
  ### <code>no-restricted-syntax</code>
9063
9182
 
@@ -9075,9 +9194,11 @@ structures, (whether or not you add a specific `comment` condition).
9075
9194
  Note that if your parser supports comment AST (as [jsdoc-eslint-parser](https://github.com/brettz9/jsdoc-eslint-parser)
9076
9195
  is designed to do), you can just use ESLint's rule.
9077
9196
 
9197
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-restricted-syntax-options-19"></a>
9078
9198
  <a name="eslint-plugin-jsdoc-rules-no-restricted-syntax-options-19"></a>
9079
9199
  #### Options
9080
9200
 
9201
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-restricted-syntax-options-19-contexts-4"></a>
9081
9202
  <a name="eslint-plugin-jsdoc-rules-no-restricted-syntax-options-19-contexts-4"></a>
9082
9203
  ##### <code>contexts</code>
9083
9204
 
@@ -9092,7 +9213,7 @@ your files (as is necessary for finding function blocks not attached to a
9092
9213
  function declaration or expression, i.e., `@callback` or `@function` (or its
9093
9214
  aliases `@func` or `@method`) (including those associated with an `@interface`).
9094
9215
 
9095
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
9216
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
9096
9217
  section of our README for more on the expected format.
9097
9218
 
9098
9219
  |||
@@ -9270,6 +9391,7 @@ const MY_ENUM = Object.freeze({
9270
9391
  ````
9271
9392
 
9272
9393
 
9394
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-types"></a>
9273
9395
  <a name="eslint-plugin-jsdoc-rules-no-types"></a>
9274
9396
  ### <code>no-types</code>
9275
9397
 
@@ -9278,9 +9400,11 @@ This rule reports types being used on `@param` or `@returns`.
9278
9400
  The rule is intended to prevent the indication of types on tags where
9279
9401
  the type information would be redundant with TypeScript.
9280
9402
 
9403
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-types-options-20"></a>
9281
9404
  <a name="eslint-plugin-jsdoc-rules-no-types-options-20"></a>
9282
9405
  #### Options
9283
9406
 
9407
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-types-options-20-contexts-5"></a>
9284
9408
  <a name="eslint-plugin-jsdoc-rules-no-types-options-20-contexts-5"></a>
9285
9409
  ##### <code>contexts</code>
9286
9410
 
@@ -9292,7 +9416,7 @@ for finding function blocks not attached to a function declaration or
9292
9416
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
9293
9417
  `@method`) (including those associated with an `@interface`).
9294
9418
 
9295
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
9419
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
9296
9420
  section of our README for more on the expected format.
9297
9421
 
9298
9422
  |||
@@ -9405,6 +9529,7 @@ function quux (foo) {
9405
9529
  ````
9406
9530
 
9407
9531
 
9532
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-undefined-types"></a>
9408
9533
  <a name="eslint-plugin-jsdoc-rules-no-undefined-types"></a>
9409
9534
  ### <code>no-undefined-types</code>
9410
9535
 
@@ -9434,7 +9559,7 @@ The following types are always considered defined.
9434
9559
  - `null`, `undefined`, `void`, `string`, `boolean`, `object`,
9435
9560
  `function`, `symbol`
9436
9561
  - `number`, `bigint`, `NaN`, `Infinity`
9437
- - `any`, `*`
9562
+ - `any`, `*`, `never`, `unknown`, `const`
9438
9563
  - `this`, `true`, `false`
9439
9564
  - `Array`, `Object`, `RegExp`, `Date`, `Function`
9440
9565
 
@@ -9451,6 +9576,7 @@ reporting on use of that namepath elsewhere) and/or that a tag's `type` is
9451
9576
  `false` (and should not be checked for types). If the `type` is an array, that
9452
9577
  array's items will be considered as defined for the purposes of that tag.
9453
9578
 
9579
+ <a name="user-content-eslint-plugin-jsdoc-rules-no-undefined-types-options-21"></a>
9454
9580
  <a name="eslint-plugin-jsdoc-rules-no-undefined-types-options-21"></a>
9455
9581
  #### Options
9456
9582
 
@@ -9781,14 +9907,6 @@ function foo () {
9781
9907
 
9782
9908
  }
9783
9909
 
9784
- /**
9785
- *
9786
- *
9787
- */
9788
- function foo () {
9789
-
9790
- }
9791
-
9792
9910
  /**
9793
9911
  * @param {MyType} foo - Bar.
9794
9912
  * @param {HisType} bar - Foo.
@@ -10073,14 +10191,21 @@ export class Foo {
10073
10191
  }
10074
10192
  }
10075
10193
  // Settings: {"jsdoc":{"mode":"typescript"}}
10194
+
10195
+ /**
10196
+ * @type {const}
10197
+ */
10198
+ const a = 'string';
10076
10199
  ````
10077
10200
 
10078
10201
 
10202
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-asterisk-prefix"></a>
10079
10203
  <a name="eslint-plugin-jsdoc-rules-require-asterisk-prefix"></a>
10080
10204
  ### <code>require-asterisk-prefix</code>
10081
10205
 
10082
10206
  Requires that each JSDoc line starts with an `*`.
10083
10207
 
10208
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-asterisk-prefix-options-22"></a>
10084
10209
  <a name="eslint-plugin-jsdoc-rules-require-asterisk-prefix-options-22"></a>
10085
10210
  #### Options
10086
10211
 
@@ -10092,6 +10217,7 @@ and use the `tags` option to apply to specific tags only.
10092
10217
 
10093
10218
  After the string option, one may add an object with the following.
10094
10219
 
10220
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-asterisk-prefix-options-22-tags-3"></a>
10095
10221
  <a name="eslint-plugin-jsdoc-rules-require-asterisk-prefix-options-22-tags-3"></a>
10096
10222
  ##### <code>tags</code>
10097
10223
 
@@ -10349,6 +10475,7 @@ function quux (foo) {
10349
10475
  ````
10350
10476
 
10351
10477
 
10478
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence"></a>
10352
10479
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence"></a>
10353
10480
  ### <code>require-description-complete-sentence</code>
10354
10481
 
@@ -10366,9 +10493,11 @@ Requires that block description, explicit `@description`, and
10366
10493
  * Periods after items within the `abbreviations` option array are not treated
10367
10494
  as sentence endings.
10368
10495
 
10496
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23"></a>
10369
10497
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23"></a>
10370
10498
  #### Options
10371
10499
 
10500
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-tags-4"></a>
10372
10501
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-tags-4"></a>
10373
10502
  ##### <code>tags</code>
10374
10503
 
@@ -10393,6 +10522,7 @@ its "description" (e.g., for `@returns {someType} some description`, the
10393
10522
  description is `some description` while for `@some-tag xyz`, the description
10394
10523
  is `xyz`).
10395
10524
 
10525
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-abbreviations"></a>
10396
10526
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-abbreviations"></a>
10397
10527
  ##### <code>abbreviations</code>
10398
10528
 
@@ -10400,6 +10530,7 @@ You can provide an `abbreviations` options array to avoid such strings of text
10400
10530
  being treated as sentence endings when followed by dots. The `.` is not
10401
10531
  necessary at the end of the array items.
10402
10532
 
10533
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-newlinebeforecapsassumesbadsentenceend"></a>
10403
10534
  <a name="eslint-plugin-jsdoc-rules-require-description-complete-sentence-options-23-newlinebeforecapsassumesbadsentenceend"></a>
10404
10535
  ##### <code>newlineBeforeCapsAssumesBadSentenceEnd</code>
10405
10536
 
@@ -11059,6 +11190,7 @@ export default (foo) => {
11059
11190
  ````
11060
11191
 
11061
11192
 
11193
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description"></a>
11062
11194
  <a name="eslint-plugin-jsdoc-rules-require-description"></a>
11063
11195
  ### <code>require-description</code>
11064
11196
 
@@ -11071,6 +11203,7 @@ Requires that all functions have a description.
11071
11203
  is `"tag"`) must have a non-empty description that explains the purpose of
11072
11204
  the method.
11073
11205
 
11206
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-description-options-24"></a>
11074
11207
  <a name="eslint-plugin-jsdoc-rules-require-description-options-24"></a>
11075
11208
  #### Options
11076
11209
 
@@ -11612,6 +11745,7 @@ class quux {
11612
11745
  ````
11613
11746
 
11614
11747
 
11748
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example"></a>
11615
11749
  <a name="eslint-plugin-jsdoc-rules-require-example"></a>
11616
11750
  ### <code>require-example</code>
11617
11751
 
@@ -11621,11 +11755,13 @@ Requires that all functions have examples.
11621
11755
  * Every example tag must have a non-empty description that explains the
11622
11756
  method's usage.
11623
11757
 
11758
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25"></a>
11624
11759
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25"></a>
11625
11760
  #### Options
11626
11761
 
11627
11762
  This rule has an object option.
11628
11763
 
11764
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-exemptedby"></a>
11629
11765
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-exemptedby"></a>
11630
11766
  ##### <code>exemptedBy</code>
11631
11767
 
@@ -11635,12 +11771,14 @@ block avoids the need for an `@example`. Defaults to an array with
11635
11771
  so be sure to add back `inheritdoc` if you wish its presence to cause
11636
11772
  exemption of the rule.
11637
11773
 
11774
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-exemptnoarguments"></a>
11638
11775
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-exemptnoarguments"></a>
11639
11776
  ##### <code>exemptNoArguments</code>
11640
11777
 
11641
11778
  Boolean to indicate that no-argument functions should not be reported for
11642
11779
  missing `@example` declarations.
11643
11780
 
11781
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-contexts-6"></a>
11644
11782
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-contexts-6"></a>
11645
11783
  ##### <code>contexts</code>
11646
11784
 
@@ -11650,25 +11788,29 @@ Set this to an array of strings representing the AST context (or an object with
11650
11788
  classes). Overrides the default contexts (see below). Set to `"any"` if you
11651
11789
  want the rule to apply to any jsdoc block throughout your files.
11652
11790
 
11653
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
11791
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
11654
11792
  section of our README for more on the expected format.
11655
11793
 
11794
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-checkconstructors"></a>
11656
11795
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-checkconstructors"></a>
11657
11796
  ##### <code>checkConstructors</code>
11658
11797
 
11659
11798
  A value indicating whether `constructor`s should be checked.
11660
11799
  Defaults to `true`.
11661
11800
 
11801
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-checkgetters"></a>
11662
11802
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-checkgetters"></a>
11663
11803
  ##### <code>checkGetters</code>
11664
11804
 
11665
11805
  A value indicating whether getters should be checked. Defaults to `false`.
11666
11806
 
11807
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-options-25-checksetters"></a>
11667
11808
  <a name="eslint-plugin-jsdoc-rules-require-example-options-25-checksetters"></a>
11668
11809
  ##### <code>checkSetters</code>
11669
11810
 
11670
11811
  A value indicating whether setters should be checked. Defaults to `false`.
11671
11812
 
11813
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-example-fixer"></a>
11672
11814
  <a name="eslint-plugin-jsdoc-rules-require-example-fixer"></a>
11673
11815
  #### Fixer
11674
11816
 
@@ -11943,6 +12085,7 @@ function quux () {
11943
12085
  ````
11944
12086
 
11945
12087
 
12088
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-file-overview"></a>
11946
12089
  <a name="eslint-plugin-jsdoc-rules-require-file-overview"></a>
11947
12090
  ### <code>require-file-overview</code>
11948
12091
 
@@ -11956,9 +12099,11 @@ Checks that:
11956
12099
  as being when the overview tag is not preceded by anything other than
11957
12100
  a comment.
11958
12101
 
12102
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-file-overview-options-26"></a>
11959
12103
  <a name="eslint-plugin-jsdoc-rules-require-file-overview-options-26"></a>
11960
12104
  #### Options
11961
12105
 
12106
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-file-overview-options-26-tags-5"></a>
11962
12107
  <a name="eslint-plugin-jsdoc-rules-require-file-overview-options-26-tags-5"></a>
11963
12108
  ##### <code>tags</code>
11964
12109
 
@@ -12237,11 +12382,13 @@ function quux () {
12237
12382
  ````
12238
12383
 
12239
12384
 
12385
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-hyphen-before-param-description"></a>
12240
12386
  <a name="eslint-plugin-jsdoc-rules-require-hyphen-before-param-description"></a>
12241
12387
  ### <code>require-hyphen-before-param-description</code>
12242
12388
 
12243
12389
  Requires (or disallows) a hyphen before the `@param` description.
12244
12390
 
12391
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-hyphen-before-param-description-options-27"></a>
12245
12392
  <a name="eslint-plugin-jsdoc-rules-require-hyphen-before-param-description-options-27"></a>
12246
12393
  #### Options
12247
12394
 
@@ -12467,17 +12614,20 @@ function main(argv) {
12467
12614
  ````
12468
12615
 
12469
12616
 
12617
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc"></a>
12470
12618
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc"></a>
12471
12619
  ### <code>require-jsdoc</code>
12472
12620
 
12473
12621
  Checks for presence of jsdoc comments, on class declarations as well as
12474
12622
  functions.
12475
12623
 
12624
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28"></a>
12476
12625
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28"></a>
12477
12626
  #### Options
12478
12627
 
12479
12628
  Accepts one optional options object with the following optional keys.
12480
12629
 
12630
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-publiconly"></a>
12481
12631
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-publiconly"></a>
12482
12632
  ##### <code>publicOnly</code>
12483
12633
 
@@ -12494,6 +12644,7 @@ otherwise noted):
12494
12644
  - `cjs` - CommonJS exports are checked for JSDoc comments (Defaults to `true`)
12495
12645
  - `window` - Window global exports are checked for JSDoc comments
12496
12646
 
12647
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-require"></a>
12497
12648
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-require"></a>
12498
12649
  ##### <code>require</code>
12499
12650
 
@@ -12507,6 +12658,7 @@ An object with the following optional boolean keys which all default to
12507
12658
  - `FunctionExpression`
12508
12659
  - `MethodDefinition`
12509
12660
 
12661
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-contexts-7"></a>
12510
12662
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-contexts-7"></a>
12511
12663
  ##### <code>contexts</code>
12512
12664
 
@@ -12520,9 +12672,10 @@ block which will otherwise be added. Defaults to an empty array.
12520
12672
  Note that you may need to disable `require` items (e.g., `MethodDefinition`)
12521
12673
  if you are specifying a more precise form in `contexts` (e.g., `MethodDefinition:not([accessibility="private"] > FunctionExpression`).
12522
12674
 
12523
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
12675
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
12524
12676
  section of our README for more on the expected format.
12525
12677
 
12678
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-exemptemptyconstructors"></a>
12526
12679
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-exemptemptyconstructors"></a>
12527
12680
  ##### <code>exemptEmptyConstructors</code>
12528
12681
 
@@ -12532,6 +12685,7 @@ When `true`, the rule will not report missing jsdoc blocks above constructors
12532
12685
  with no parameters or return values (this is enabled by default as the class
12533
12686
  name or description should be seen as sufficient to convey intent).
12534
12687
 
12688
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-exemptemptyfunctions"></a>
12535
12689
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-exemptemptyfunctions"></a>
12536
12690
  ##### <code>exemptEmptyFunctions</code>
12537
12691
 
@@ -12541,6 +12695,7 @@ When `true`, the rule will not report missing jsdoc blocks above
12541
12695
  functions/methods with no parameters or return values (intended where
12542
12696
  function/method names are sufficient for themselves as documentation).
12543
12697
 
12698
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checkconstructors-1"></a>
12544
12699
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checkconstructors-1"></a>
12545
12700
  ##### <code>checkConstructors</code>
12546
12701
 
@@ -12548,6 +12703,7 @@ A value indicating whether `constructor`s should be checked. Defaults to
12548
12703
  `true`. When `true`, `exemptEmptyConstructors` may still avoid reporting when
12549
12704
  no parameters or return values are found.
12550
12705
 
12706
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checkgetters-1"></a>
12551
12707
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checkgetters-1"></a>
12552
12708
  ##### <code>checkGetters</code>
12553
12709
 
@@ -12557,6 +12713,7 @@ getters should be checked but only when there is no setter. This may be useful
12557
12713
  if one only wishes documentation on one of the two accessors. Defaults to
12558
12714
  `false`.
12559
12715
 
12716
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checksetters-1"></a>
12560
12717
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-checksetters-1"></a>
12561
12718
  ##### <code>checkSetters</code>
12562
12719
 
@@ -12566,6 +12723,7 @@ setters should be checked but only when there is no getter. This may be useful
12566
12723
  if one only wishes documentation on one of the two accessors. Defaults to
12567
12724
  `false`.
12568
12725
 
12726
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-jsdoc-options-28-enablefixer-2"></a>
12569
12727
  <a name="eslint-plugin-jsdoc-rules-require-jsdoc-options-28-enablefixer-2"></a>
12570
12728
  ##### <code>enableFixer</code>
12571
12729
 
@@ -14156,14 +14314,17 @@ export class User {
14156
14314
  ````
14157
14315
 
14158
14316
 
14317
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-description"></a>
14159
14318
  <a name="eslint-plugin-jsdoc-rules-require-param-description"></a>
14160
14319
  ### <code>require-param-description</code>
14161
14320
 
14162
14321
  Requires that each `@param` tag has a `description` value.
14163
14322
 
14323
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-description-options-29"></a>
14164
14324
  <a name="eslint-plugin-jsdoc-rules-require-param-description-options-29"></a>
14165
14325
  #### Options
14166
14326
 
14327
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-description-options-29-contexts-8"></a>
14167
14328
  <a name="eslint-plugin-jsdoc-rules-require-param-description-options-29-contexts-8"></a>
14168
14329
  ##### <code>contexts</code>
14169
14330
 
@@ -14175,7 +14336,7 @@ for finding function blocks not attached to a function declaration or
14175
14336
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
14176
14337
  `@method`) (including those associated with an `@interface`).
14177
14338
 
14178
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
14339
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
14179
14340
  section of our README for more on the expected format.
14180
14341
 
14181
14342
  |||
@@ -14276,6 +14437,7 @@ function quux (foo) {
14276
14437
  ````
14277
14438
 
14278
14439
 
14440
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-name"></a>
14279
14441
  <a name="eslint-plugin-jsdoc-rules-require-param-name"></a>
14280
14442
  ### <code>require-param-name</code>
14281
14443
 
@@ -14285,9 +14447,11 @@ Requires that all function parameters have names.
14285
14447
  >
14286
14448
  > [JSDoc](https://jsdoc.app/tags-param.html#overview)
14287
14449
 
14450
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-name-options-30"></a>
14288
14451
  <a name="eslint-plugin-jsdoc-rules-require-param-name-options-30"></a>
14289
14452
  #### Options
14290
14453
 
14454
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-name-options-30-contexts-9"></a>
14291
14455
  <a name="eslint-plugin-jsdoc-rules-require-param-name-options-30-contexts-9"></a>
14292
14456
  ##### <code>contexts</code>
14293
14457
 
@@ -14299,7 +14463,7 @@ for finding function blocks not attached to a function declaration or
14299
14463
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
14300
14464
  `@method`) (including those associated with an `@interface`).
14301
14465
 
14302
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
14466
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
14303
14467
  section of our README for more on the expected format.
14304
14468
 
14305
14469
  |||
@@ -14416,14 +14580,17 @@ function example(cb) {
14416
14580
  ````
14417
14581
 
14418
14582
 
14583
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-type"></a>
14419
14584
  <a name="eslint-plugin-jsdoc-rules-require-param-type"></a>
14420
14585
  ### <code>require-param-type</code>
14421
14586
 
14422
14587
  Requires that each `@param` tag has a `type` value.
14423
14588
 
14589
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-type-options-31"></a>
14424
14590
  <a name="eslint-plugin-jsdoc-rules-require-param-type-options-31"></a>
14425
14591
  #### Options
14426
14592
 
14593
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-type-options-31-contexts-10"></a>
14427
14594
  <a name="eslint-plugin-jsdoc-rules-require-param-type-options-31-contexts-10"></a>
14428
14595
  ##### <code>contexts</code>
14429
14596
 
@@ -14435,7 +14602,7 @@ for finding function blocks not attached to a function declaration or
14435
14602
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
14436
14603
  `@method`) (including those associated with an `@interface`).
14437
14604
 
14438
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
14605
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
14439
14606
  section of our README for more on the expected format.
14440
14607
 
14441
14608
  |||
@@ -14536,11 +14703,13 @@ function quux (foo) {
14536
14703
  ````
14537
14704
 
14538
14705
 
14706
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param"></a>
14539
14707
  <a name="eslint-plugin-jsdoc-rules-require-param"></a>
14540
14708
  ### <code>require-param</code>
14541
14709
 
14542
14710
  Requires that all function parameters are documented.
14543
14711
 
14712
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1"></a>
14544
14713
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1"></a>
14545
14714
  #### Fixer
14546
14715
 
@@ -14548,6 +14717,7 @@ Adds `@param <name>` for each tag present in the function signature but
14548
14717
  missing in the jsdoc. Can be disabled by setting the `enableFixer`
14549
14718
  option to `false`.
14550
14719
 
14720
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1-destructured-object-and-array-naming"></a>
14551
14721
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1-destructured-object-and-array-naming"></a>
14552
14722
  ##### Destructured object and array naming
14553
14723
 
@@ -14600,6 +14770,7 @@ function quux ([foo, bar]) {
14600
14770
  */
14601
14771
  ```
14602
14772
 
14773
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1-missing-root-fixing"></a>
14603
14774
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1-missing-root-fixing"></a>
14604
14775
  ##### Missing root fixing
14605
14776
 
@@ -14635,6 +14806,7 @@ numeric component).
14635
14806
  And one can have the count begin at another number (e.g., `1`) by changing
14636
14807
  `autoIncrementBase` from the default of `0`.
14637
14808
 
14809
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1-rest-element-restelement-insertions"></a>
14638
14810
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1-rest-element-restelement-insertions"></a>
14639
14811
  ##### Rest Element (<code>RestElement</code>) insertions
14640
14812
 
@@ -14687,6 +14859,7 @@ function baar ([a, ...extra]) {
14687
14859
 
14688
14860
  ...because it does not use the `...` syntax in the type.
14689
14861
 
14862
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-fixer-1-object-rest-property-insertions"></a>
14690
14863
  <a name="eslint-plugin-jsdoc-rules-require-param-fixer-1-object-rest-property-insertions"></a>
14691
14864
  ##### Object Rest Property insertions
14692
14865
 
@@ -14722,16 +14895,19 @@ other properties, so in looking at the docs alone without looking at the
14722
14895
  function signature, it may appear that there is an actual property named
14723
14896
  `extra`.
14724
14897
 
14898
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32"></a>
14725
14899
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32"></a>
14726
14900
  #### Options
14727
14901
 
14728
14902
  An options object accepts the following optional properties:
14729
14903
 
14904
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-enablefixer-3"></a>
14730
14905
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-enablefixer-3"></a>
14731
14906
  ##### <code>enableFixer</code>
14732
14907
 
14733
14908
  Whether to enable the fixer. Defaults to `true`.
14734
14909
 
14910
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-enablerootfixer"></a>
14735
14911
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-enablerootfixer"></a>
14736
14912
  ##### <code>enableRootFixer</code>
14737
14913
 
@@ -14739,12 +14915,14 @@ Whether to enable the auto-adding of incrementing roots (see the "Fixer"
14739
14915
  section). Defaults to `true`. Has no effect if `enableFixer` is set to
14740
14916
  `false`.
14741
14917
 
14918
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-enablerestelementfixer"></a>
14742
14919
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-enablerestelementfixer"></a>
14743
14920
  ##### <code>enableRestElementFixer</code>
14744
14921
 
14745
14922
  Whether to enable the rest element fixer (see
14746
14923
  "Rest Element (`RestElement`) insertions"). Defaults to `true`.
14747
14924
 
14925
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkrestproperty-1"></a>
14748
14926
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkrestproperty-1"></a>
14749
14927
  ##### <code>checkRestProperty</code>
14750
14928
 
@@ -14799,12 +14977,14 @@ function quux ({num, ...extra}) {
14799
14977
  }
14800
14978
  ```
14801
14979
 
14980
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-autoincrementbase"></a>
14802
14981
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-autoincrementbase"></a>
14803
14982
  ##### <code>autoIncrementBase</code>
14804
14983
 
14805
14984
  Numeric to indicate the number at which to begin auto-incrementing roots.
14806
14985
  Defaults to `0`.
14807
14986
 
14987
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-unnamedrootbase"></a>
14808
14988
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-unnamedrootbase"></a>
14809
14989
  ##### <code>unnamedRootBase</code>
14810
14990
 
@@ -14831,6 +15011,7 @@ function quux ({foo}, [bar], {baz}) {
14831
15011
  */
14832
15012
  ```
14833
15013
 
15014
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-exemptedby-1"></a>
14834
15015
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-exemptedby-1"></a>
14835
15016
  ##### <code>exemptedBy</code>
14836
15017
 
@@ -14840,6 +15021,7 @@ avoids the need for a `@param`. Defaults to an array with
14840
15021
  so be sure to add back `inheritdoc` if you wish its presence to cause
14841
15022
  exemption of the rule.
14842
15023
 
15024
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checktypespattern-1"></a>
14843
15025
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checktypespattern-1"></a>
14844
15026
  ##### <code>checkTypesPattern</code>
14845
15027
 
@@ -14875,6 +15057,7 @@ You could set this regular expression to a more expansive list, or you
14875
15057
  could restrict it such that even types matching those strings would not
14876
15058
  need destructuring.
14877
15059
 
15060
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-contexts-11"></a>
14878
15061
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-contexts-11"></a>
14879
15062
  ##### <code>contexts</code>
14880
15063
 
@@ -14884,30 +15067,35 @@ Overrides the default contexts (see below). May be useful for adding such as
14884
15067
  `TSMethodSignature` in TypeScript or restricting the contexts
14885
15068
  which are checked.
14886
15069
 
14887
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
15070
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
14888
15071
  section of our README for more on the expected format.
14889
15072
 
15073
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkconstructors-2"></a>
14890
15074
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkconstructors-2"></a>
14891
15075
  ##### <code>checkConstructors</code>
14892
15076
 
14893
15077
  A value indicating whether `constructor`s should be checked. Defaults to
14894
15078
  `true`.
14895
15079
 
15080
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkgetters-2"></a>
14896
15081
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkgetters-2"></a>
14897
15082
  ##### <code>checkGetters</code>
14898
15083
 
14899
15084
  A value indicating whether getters should be checked. Defaults to `false`.
14900
15085
 
15086
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checksetters-2"></a>
14901
15087
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checksetters-2"></a>
14902
15088
  ##### <code>checkSetters</code>
14903
15089
 
14904
15090
  A value indicating whether setters should be checked. Defaults to `false`.
14905
15091
 
15092
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkdestructured-1"></a>
14906
15093
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkdestructured-1"></a>
14907
15094
  ##### <code>checkDestructured</code>
14908
15095
 
14909
15096
  Whether to require destructured properties. Defaults to `true`.
14910
15097
 
15098
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-checkdestructuredroots"></a>
14911
15099
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-checkdestructuredroots"></a>
14912
15100
  ##### <code>checkDestructuredRoots</code>
14913
15101
 
@@ -14921,6 +15109,7 @@ implied to be `false` (i.e., the inside of the roots will not be checked
14921
15109
  either, e.g., it will also not complain if `a` or `b` do not have their own
14922
15110
  documentation). Defaults to `true`.
14923
15111
 
15112
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-param-options-32-usedefaultobjectproperties-1"></a>
14924
15113
  <a name="eslint-plugin-jsdoc-rules-require-param-options-32-usedefaultobjectproperties-1"></a>
14925
15114
  ##### <code>useDefaultObjectProperties</code>
14926
15115
 
@@ -16264,6 +16453,7 @@ export function testFn1 ({ prop = { a: 1, b: 2 } }) {
16264
16453
  ````
16265
16454
 
16266
16455
 
16456
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property"></a>
16267
16457
  <a name="eslint-plugin-jsdoc-rules-require-property"></a>
16268
16458
  ### <code>require-property</code>
16269
16459
 
@@ -16273,6 +16463,7 @@ when their type is a plain `object`, `Object`, or `PlainObject`.
16273
16463
  Note that any other type, including a subtype of object such as
16274
16464
  `object<string, string>`, will not be reported.
16275
16465
 
16466
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property-fixer-2"></a>
16276
16467
  <a name="eslint-plugin-jsdoc-rules-require-property-fixer-2"></a>
16277
16468
  #### Fixer
16278
16469
 
@@ -16371,6 +16562,7 @@ function quux () {
16371
16562
  ````
16372
16563
 
16373
16564
 
16565
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property-description"></a>
16374
16566
  <a name="eslint-plugin-jsdoc-rules-require-property-description"></a>
16375
16567
  ### <code>require-property-description</code>
16376
16568
 
@@ -16440,6 +16632,7 @@ The following patterns are not considered problems:
16440
16632
  ````
16441
16633
 
16442
16634
 
16635
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property-name"></a>
16443
16636
  <a name="eslint-plugin-jsdoc-rules-require-property-name"></a>
16444
16637
  ### <code>require-property-name</code>
16445
16638
 
@@ -16500,6 +16693,7 @@ The following patterns are not considered problems:
16500
16693
  ````
16501
16694
 
16502
16695
 
16696
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-property-type"></a>
16503
16697
  <a name="eslint-plugin-jsdoc-rules-require-property-type"></a>
16504
16698
  ### <code>require-property-type</code>
16505
16699
 
@@ -16560,6 +16754,7 @@ The following patterns are not considered problems:
16560
16754
  ````
16561
16755
 
16562
16756
 
16757
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-check"></a>
16563
16758
  <a name="eslint-plugin-jsdoc-rules-require-returns-check"></a>
16564
16759
  ### <code>require-returns-check</code>
16565
16760
 
@@ -16572,6 +16767,7 @@ is set to `false` no non-`undefined` returned or resolved value is found.
16572
16767
 
16573
16768
  Will also report if multiple `@returns` tags are present.
16574
16769
 
16770
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-check-options-33"></a>
16575
16771
  <a name="eslint-plugin-jsdoc-rules-require-returns-check-options-33"></a>
16576
16772
  #### Options
16577
16773
 
@@ -17149,6 +17345,7 @@ function * quux() {}
17149
17345
  ````
17150
17346
 
17151
17347
 
17348
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-description"></a>
17152
17349
  <a name="eslint-plugin-jsdoc-rules-require-returns-description"></a>
17153
17350
  ### <code>require-returns-description</code>
17154
17351
 
@@ -17156,9 +17353,11 @@ Requires that the `@returns` tag has a `description` value. The error
17156
17353
  will not be reported if the return value is `void` or `undefined`
17157
17354
  or if it is `Promise<void>` or `Promise<undefined>`.
17158
17355
 
17356
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-description-options-34"></a>
17159
17357
  <a name="eslint-plugin-jsdoc-rules-require-returns-description-options-34"></a>
17160
17358
  #### Options
17161
17359
 
17360
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-description-options-34-contexts-12"></a>
17162
17361
  <a name="eslint-plugin-jsdoc-rules-require-returns-description-options-34-contexts-12"></a>
17163
17362
  ##### <code>contexts</code>
17164
17363
 
@@ -17170,7 +17369,7 @@ for finding function blocks not attached to a function declaration or
17170
17369
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
17171
17370
  `@method`) (including those associated with an `@interface`).
17172
17371
 
17173
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
17372
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
17174
17373
  section of our README for more on the expected format.
17175
17374
 
17176
17375
  |||
@@ -17307,14 +17506,17 @@ function quux () {
17307
17506
  ````
17308
17507
 
17309
17508
 
17509
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-type"></a>
17310
17510
  <a name="eslint-plugin-jsdoc-rules-require-returns-type"></a>
17311
17511
  ### <code>require-returns-type</code>
17312
17512
 
17313
17513
  Requires that `@returns` tag has `type` value.
17314
17514
 
17515
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-type-options-35"></a>
17315
17516
  <a name="eslint-plugin-jsdoc-rules-require-returns-type-options-35"></a>
17316
17517
  #### Options
17317
17518
 
17519
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-type-options-35-contexts-13"></a>
17318
17520
  <a name="eslint-plugin-jsdoc-rules-require-returns-type-options-35-contexts-13"></a>
17319
17521
  ##### <code>contexts</code>
17320
17522
 
@@ -17326,7 +17528,7 @@ for finding function blocks not attached to a function declaration or
17326
17528
  expression, i.e., `@callback` or `@function` (or its aliases `@func` or
17327
17529
  `@method`) (including those associated with an `@interface`).
17328
17530
 
17329
- See the ["AST and Selectors"](#eslint-plugin-jsdoc-advanced-ast-and-selectors)
17531
+ See the ["AST and Selectors"](#user-content-eslint-plugin-jsdoc-advanced-ast-and-selectors)
17330
17532
  section of our README for more on the expected format.
17331
17533
 
17332
17534
  |||
@@ -17428,6 +17630,7 @@ function quux () {
17428
17630
  ````
17429
17631
 
17430
17632
 
17633
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns"></a>
17431
17634
  <a name="eslint-plugin-jsdoc-rules-require-returns"></a>
17432
17635
  ### <code>require-returns</code>
17433
17636
 
@@ -17435,6 +17638,7 @@ Requires that returns are documented.
17435
17638
 
17436
17639
  Will also report if multiple `@returns` tags are present.
17437
17640
 
17641
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-returns-options-36"></a>
17438
17642
  <a name="eslint-plugin-jsdoc-rules-require-returns-options-36"></a>
17439
17643
  #### Options
17440
17644
 
@@ -18518,11 +18722,13 @@ export const sleep = (ms: number) => {
18518
18722
  ````
18519
18723
 
18520
18724
 
18725
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-throws"></a>
18521
18726
  <a name="eslint-plugin-jsdoc-rules-require-throws"></a>
18522
18727
  ### <code>require-throws</code>
18523
18728
 
18524
18729
  Requires that throw statements are documented.
18525
18730
 
18731
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-throws-options-37"></a>
18526
18732
  <a name="eslint-plugin-jsdoc-rules-require-throws-options-37"></a>
18527
18733
  #### Options
18528
18734
 
@@ -18816,6 +19022,7 @@ function quux (foo) {
18816
19022
  ````
18817
19023
 
18818
19024
 
19025
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-yields"></a>
18819
19026
  <a name="eslint-plugin-jsdoc-rules-require-yields"></a>
18820
19027
  ### <code>require-yields</code>
18821
19028
 
@@ -18826,6 +19033,7 @@ Will also report if multiple `@yields` tags are present.
18826
19033
  See the `next`, `forceRequireNext`, and `nextWithGeneratorTag` options for an
18827
19034
  option to expect a non-standard `@next` tag.
18828
19035
 
19036
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-yields-options-38"></a>
18829
19037
  <a name="eslint-plugin-jsdoc-rules-require-yields-options-38"></a>
18830
19038
  #### Options
18831
19039
 
@@ -19618,6 +19826,7 @@ function * quux (foo) {
19618
19826
  ````
19619
19827
 
19620
19828
 
19829
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-yields-check"></a>
19621
19830
  <a name="eslint-plugin-jsdoc-rules-require-yields-check"></a>
19622
19831
  ### <code>require-yields-check</code>
19623
19832
 
@@ -19636,6 +19845,7 @@ function bodies.
19636
19845
 
19637
19846
  Will also report if multiple `@yields` tags are present.
19638
19847
 
19848
+ <a name="user-content-eslint-plugin-jsdoc-rules-require-yields-check-options-39"></a>
19639
19849
  <a name="eslint-plugin-jsdoc-rules-require-yields-check-options-39"></a>
19640
19850
  #### Options
19641
19851
 
@@ -20140,6 +20350,7 @@ function * quux (foo) {
20140
20350
  ````
20141
20351
 
20142
20352
 
20353
+ <a name="user-content-eslint-plugin-jsdoc-rules-sort-tags"></a>
20143
20354
  <a name="eslint-plugin-jsdoc-rules-sort-tags"></a>
20144
20355
  ### <code>sort-tags</code>
20145
20356
 
@@ -20147,9 +20358,11 @@ Sorts tags by a specified sequence according to tag name.
20147
20358
 
20148
20359
  (Default order originally inspired by [`@homer0/prettier-plugin-jsdoc`](https://github.com/homer0/packages/tree/main/packages/public/prettier-plugin-jsdoc).)
20149
20360
 
20361
+ <a name="user-content-eslint-plugin-jsdoc-rules-sort-tags-options-40"></a>
20150
20362
  <a name="eslint-plugin-jsdoc-rules-sort-tags-options-40"></a>
20151
20363
  #### Options
20152
20364
 
20365
+ <a name="user-content-eslint-plugin-jsdoc-rules-sort-tags-options-40-tagsequence"></a>
20153
20366
  <a name="eslint-plugin-jsdoc-rules-sort-tags-options-40-tagsequence"></a>
20154
20367
  ##### <code>tagSequence</code>
20155
20368
 
@@ -20326,6 +20539,7 @@ a fixed order that doesn't change into the future, supply your own
20326
20539
  ];
20327
20540
  ```
20328
20541
 
20542
+ <a name="user-content-eslint-plugin-jsdoc-rules-sort-tags-options-40-alphabetizeextras"></a>
20329
20543
  <a name="eslint-plugin-jsdoc-rules-sort-tags-options-40-alphabetizeextras"></a>
20330
20544
  ##### <code>alphabetizeExtras</code>
20331
20545
 
@@ -20477,11 +20691,13 @@ function quux () {}
20477
20691
  ````
20478
20692
 
20479
20693
 
20694
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines"></a>
20480
20695
  <a name="eslint-plugin-jsdoc-rules-tag-lines"></a>
20481
20696
  ### <code>tag-lines</code>
20482
20697
 
20483
20698
  Enforces lines (or no lines) between tags.
20484
20699
 
20700
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines-options-41"></a>
20485
20701
  <a name="eslint-plugin-jsdoc-rules-tag-lines-options-41"></a>
20486
20702
  #### Options
20487
20703
 
@@ -20489,21 +20705,30 @@ The first option is a single string set to "always", "never", or "any"
20489
20705
  (defaults to "never").
20490
20706
 
20491
20707
  "any" is only useful with `tags` (allowing non-enforcement of lines except
20492
- for particular tags).
20708
+ for particular tags) or with `dropEndLines`.
20493
20709
 
20494
20710
  The second option is an object with the following optional properties.
20495
20711
 
20712
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines-options-41-count-defaults-to-1"></a>
20496
20713
  <a name="eslint-plugin-jsdoc-rules-tag-lines-options-41-count-defaults-to-1"></a>
20497
20714
  ##### <code>count</code> (defaults to 1)
20498
20715
 
20499
20716
  Use with "always" to indicate the number of lines to require be present.
20500
20717
 
20718
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines-options-41-noendlines-defaults-to-false"></a>
20501
20719
  <a name="eslint-plugin-jsdoc-rules-tag-lines-options-41-noendlines-defaults-to-false"></a>
20502
20720
  ##### <code>noEndLines</code> (defaults to <code>false</code>)
20503
20721
 
20504
20722
  Use with "always" to indicate the normal lines to be added after tags should
20505
20723
  not be added after the final tag.
20506
20724
 
20725
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines-options-41-dropendlines-defaults-to-false"></a>
20726
+ <a name="eslint-plugin-jsdoc-rules-tag-lines-options-41-dropendlines-defaults-to-false"></a>
20727
+ ##### <code>dropEndLines</code> (defaults to <code>false</code>)
20728
+
20729
+ If defined, will drop end lines for the final tag only.
20730
+
20731
+ <a name="user-content-eslint-plugin-jsdoc-rules-tag-lines-options-41-tags-default-to-empty-object"></a>
20507
20732
  <a name="eslint-plugin-jsdoc-rules-tag-lines-options-41-tags-default-to-empty-object"></a>
20508
20733
  ##### <code>tags</code> (default to empty object)
20509
20734
 
@@ -20660,6 +20885,20 @@ The following patterns are considered problems:
20660
20885
  */
20661
20886
  // "jsdoc/tag-lines": ["error"|"warn", "always"]
20662
20887
  // Message: Expected 1 line between tags but found 0
20888
+
20889
+ /**
20890
+ * Some description
20891
+ * @param {string} a
20892
+ * @param {string} b
20893
+ *
20894
+ * @returns {SomeType} An extended
20895
+ * description.
20896
+ *
20897
+ * This is still part of `@returns`.
20898
+ *
20899
+ */
20900
+ // "jsdoc/tag-lines": ["error"|"warn", "any",{"dropEndLines":true}]
20901
+ // Message: Expected no trailing lines
20663
20902
  ````
20664
20903
 
20665
20904
  The following patterns are not considered problems:
@@ -20817,16 +21056,29 @@ The following patterns are not considered problems:
20817
21056
  *
20818
21057
  */
20819
21058
  // "jsdoc/tag-lines": ["error"|"warn", "always"]
21059
+
21060
+ /**
21061
+ * Some description
21062
+ * @param {string} a
21063
+ * @param {string} b
21064
+ *
21065
+ * @returns {SomeType} An extended
21066
+ * description.
21067
+ *
21068
+ * This is still part of `@returns`.
21069
+ */
21070
+ // "jsdoc/tag-lines": ["error"|"warn", "any",{"dropEndLines":true}]
20820
21071
  ````
20821
21072
 
20822
21073
 
21074
+ <a name="user-content-eslint-plugin-jsdoc-rules-valid-types"></a>
20823
21075
  <a name="eslint-plugin-jsdoc-rules-valid-types"></a>
20824
21076
  ### <code>valid-types</code>
20825
21077
 
20826
21078
  Requires all types to be valid JSDoc, Closure, or TypeScript compiler types
20827
21079
  without syntax errors. Note that what determines a valid type is handled by
20828
21080
  our type parsing engine, [jsdoc-type-pratt-parser](https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser),
20829
- using [`settings.jsdoc.mode`](#eslint-plugin-jsdoc-settings-mode) to
21081
+ using [`settings.jsdoc.mode`](#user-content-eslint-plugin-jsdoc-settings-mode) to
20830
21082
  determine whether to use jsdoc-type-pratt-parser's "permissive" parsing or
20831
21083
  the stricter "jsdoc", "typescript", "closure" modes.
20832
21084
 
@@ -20900,6 +21152,7 @@ for valid types (based on the tag's `type` value), and either portion checked
20900
21152
  for presence (based on `false` `name` or `type` values or their `required`
20901
21153
  value). See the setting for more details.
20902
21154
 
21155
+ <a name="user-content-eslint-plugin-jsdoc-rules-valid-types-options-42"></a>
20903
21156
  <a name="eslint-plugin-jsdoc-rules-valid-types-options-42"></a>
20904
21157
  #### Options
20905
21158