eslint-plugin-jsdoc 46.4.5 → 46.5.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.
Files changed (66) hide show
  1. package/README.md +31 -0
  2. package/dist/alignTransform.js +5 -5
  3. package/dist/alignTransform.js.map +1 -1
  4. package/dist/index.js +21 -10
  5. package/dist/index.js.map +1 -1
  6. package/dist/iterateJsdoc.js +1 -1
  7. package/dist/iterateJsdoc.js.map +1 -1
  8. package/dist/rules/checkExamples.js +12 -6
  9. package/dist/rules/checkExamples.js.map +1 -1
  10. package/package.json +19 -15
  11. package/docs/advanced.md +0 -102
  12. package/docs/rules/check-access.md +0 -193
  13. package/docs/rules/check-alignment.md +0 -169
  14. package/docs/rules/check-examples.md +0 -784
  15. package/docs/rules/check-indentation.md +0 -296
  16. package/docs/rules/check-line-alignment.md +0 -1002
  17. package/docs/rules/check-param-names.md +0 -1035
  18. package/docs/rules/check-property-names.md +0 -244
  19. package/docs/rules/check-syntax.md +0 -80
  20. package/docs/rules/check-tag-names.md +0 -1132
  21. package/docs/rules/check-types.md +0 -1198
  22. package/docs/rules/check-values.md +0 -409
  23. package/docs/rules/empty-tags.md +0 -220
  24. package/docs/rules/implements-on-classes.md +0 -219
  25. package/docs/rules/imports-as-dependencies.md +0 -99
  26. package/docs/rules/informative-docs.md +0 -400
  27. package/docs/rules/match-description.md +0 -1008
  28. package/docs/rules/match-name.md +0 -249
  29. package/docs/rules/multiline-blocks.md +0 -398
  30. package/docs/rules/no-bad-blocks.md +0 -174
  31. package/docs/rules/no-blank-block-descriptions.md +0 -91
  32. package/docs/rules/no-blank-blocks.md +0 -98
  33. package/docs/rules/no-defaults.md +0 -207
  34. package/docs/rules/no-missing-syntax.md +0 -275
  35. package/docs/rules/no-multi-asterisks.md +0 -278
  36. package/docs/rules/no-restricted-syntax.md +0 -383
  37. package/docs/rules/no-types.md +0 -168
  38. package/docs/rules/no-undefined-types.md +0 -789
  39. package/docs/rules/require-asterisk-prefix.md +0 -297
  40. package/docs/rules/require-description-complete-sentence.md +0 -820
  41. package/docs/rules/require-description.md +0 -585
  42. package/docs/rules/require-example.md +0 -390
  43. package/docs/rules/require-file-overview.md +0 -324
  44. package/docs/rules/require-hyphen-before-param-description.md +0 -281
  45. package/docs/rules/require-jsdoc.md +0 -1857
  46. package/docs/rules/require-param-description.md +0 -238
  47. package/docs/rules/require-param-name.md +0 -163
  48. package/docs/rules/require-param-type.md +0 -227
  49. package/docs/rules/require-param.md +0 -1820
  50. package/docs/rules/require-property-description.md +0 -88
  51. package/docs/rules/require-property-name.md +0 -79
  52. package/docs/rules/require-property-type.md +0 -79
  53. package/docs/rules/require-property.md +0 -128
  54. package/docs/rules/require-returns-check.md +0 -1053
  55. package/docs/rules/require-returns-description.md +0 -181
  56. package/docs/rules/require-returns-type.md +0 -144
  57. package/docs/rules/require-returns.md +0 -1191
  58. package/docs/rules/require-throws.md +0 -326
  59. package/docs/rules/require-yields-check.md +0 -544
  60. package/docs/rules/require-yields.md +0 -823
  61. package/docs/rules/sort-tags.md +0 -635
  62. package/docs/rules/tag-lines.md +0 -551
  63. package/docs/rules/text-escaping.md +0 -177
  64. package/docs/rules/valid-types.md +0 -881
  65. package/docs/settings.md +0 -362
  66. package/tsconfig.json +0 -22
@@ -1,1132 +0,0 @@
1
- <a name="user-content-check-tag-names"></a>
2
- <a name="check-tag-names"></a>
3
- # <code>check-tag-names</code>
4
-
5
- * [Fixer](#user-content-check-tag-names-fixer)
6
- * [Options](#user-content-check-tag-names-options)
7
- * [`definedTags`](#user-content-check-tag-names-options-definedtags)
8
- * [`enableFixer`](#user-content-check-tag-names-options-enablefixer)
9
- * [`jsxTags`](#user-content-check-tag-names-options-jsxtags)
10
- * [`typed`](#user-content-check-tag-names-options-typed)
11
- * [Context and settings](#user-content-check-tag-names-context-and-settings)
12
- * [Failing examples](#user-content-check-tag-names-failing-examples)
13
- * [Passing examples](#user-content-check-tag-names-passing-examples)
14
-
15
-
16
- Reports invalid block tag names.
17
-
18
- Valid [JSDoc 3 Block Tags](https://jsdoc.app/#block-tags) are:
19
-
20
- ```
21
- abstract
22
- access
23
- alias
24
- async
25
- augments
26
- author
27
- borrows
28
- callback
29
- class
30
- classdesc
31
- constant
32
- constructs
33
- copyright
34
- default
35
- deprecated
36
- description
37
- enum
38
- event
39
- example
40
- exports
41
- external
42
- file
43
- fires
44
- function
45
- generator
46
- global
47
- hideconstructor
48
- ignore
49
- implements
50
- inheritdoc
51
- inner
52
- instance
53
- interface
54
- kind
55
- lends
56
- license
57
- listens
58
- member
59
- memberof
60
- memberof!
61
- mixes
62
- mixin
63
- module
64
- name
65
- namespace
66
- override
67
- package
68
- param
69
- private
70
- property
71
- protected
72
- public
73
- readonly
74
- requires
75
- returns
76
- see
77
- since
78
- static
79
- summary
80
- this
81
- throws
82
- todo
83
- tutorial
84
- type
85
- typedef
86
- variation
87
- version
88
- yields
89
- ```
90
-
91
- `modifies` is also supported (see [source](https://github.com/jsdoc/jsdoc/blob/master/packages/jsdoc/lib/jsdoc/tag/dictionary/definitions.js#L594))
92
- but is undocumented.
93
-
94
- The following synonyms are also recognized if you set them in
95
- `tagNamePreference` as a key (or replacement):
96
-
97
- ```
98
- arg
99
- argument
100
- const
101
- constructor
102
- defaultvalue
103
- desc
104
- emits
105
- exception
106
- extends
107
- fileoverview
108
- func
109
- host
110
- method
111
- overview
112
- prop
113
- return
114
- var
115
- virtual
116
- yield
117
- ```
118
-
119
- If you wish to allow in certain cases both a primary tag name and its
120
- alias(es), you can set a normally non-preferred tag name to itself to indicate
121
- that you want to allow both the default tag (in this case `@returns`) and a
122
- non-default (in this case `return`):
123
-
124
- ```js
125
- "tagNamePreference": {
126
- "return": "return",
127
- }
128
- ```
129
-
130
- Because the tags indicated as replacements in
131
- `settings.jsdoc.tagNamePreference` will automatically be considered as valid,
132
- the above works.
133
-
134
- Likewise are the tag keys of `settings.jsdoc.structuredTags` automatically
135
- considered as valid (as their defining an expected structure for tags implies
136
- the tags may be used).
137
-
138
- For [TypeScript](https://www.typescriptlang.org/docs/handbook/type-checking-javascript-files.html#supported-jsdoc)
139
- (or Closure), when `settings.jsdoc.mode` is set to `typescript` or `closure`,
140
- one may also use the following:
141
-
142
- ```
143
- template
144
- ```
145
-
146
- And for [Closure](https://github.com/google/closure-compiler/wiki/Annotating-JavaScript-for-the-Closure-Compiler),
147
- when `settings.jsdoc.mode` is set to `closure`, one may use the following (in
148
- addition to the jsdoc and TypeScript tags–though replacing `returns` with
149
- `return`):
150
-
151
- ```
152
- define (synonym of `const` per jsdoc source)
153
- dict
154
- export
155
- externs
156
- final
157
- implicitCast (casing distinct from that recognized by jsdoc internally)
158
- inheritDoc (casing distinct from that recognized by jsdoc internally)
159
- noalias
160
- nocollapse
161
- nocompile
162
- noinline
163
- nosideeffects
164
- polymer
165
- polymerBehavior
166
- preserve
167
- record (synonym of `interface` per jsdoc source)
168
- struct
169
- suppress
170
- unrestricted
171
- ```
172
-
173
- ...and these undocumented tags which are only in [source](https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/parsing/Annotation.java):
174
-
175
- ```
176
- closurePrimitive
177
- customElement
178
- expose
179
- hidden
180
- idGenerator
181
- meaning
182
- mixinClass
183
- mixinFunction
184
- ngInject
185
- owner
186
- typeSummary
187
- wizaction
188
- ```
189
-
190
- If you instead wish to reject a normally valid tag, e.g., `@todo`, one may set the
191
- tag to `false`:
192
-
193
- ```json
194
- {
195
- "rules": {},
196
- "settings": {
197
- "jsdoc": {
198
- "tagNamePreference": {
199
- "todo": false
200
- }
201
- }
202
- }
203
- }
204
- ```
205
-
206
- <a name="user-content-check-tag-names-fixer"></a>
207
- <a name="check-tag-names-fixer"></a>
208
- ## Fixer
209
-
210
- (Todo)
211
-
212
- <a name="user-content-check-tag-names-options"></a>
213
- <a name="check-tag-names-options"></a>
214
- ## Options
215
-
216
- <a name="user-content-check-tag-names-options-definedtags"></a>
217
- <a name="check-tag-names-options-definedtags"></a>
218
- ### <code>definedTags</code>
219
-
220
- Use an array of `definedTags` strings to configure additional, allowed tags.
221
- The format is as follows:
222
-
223
- ```json
224
- {
225
- "definedTags": ["note", "record"]
226
- }
227
- ```
228
-
229
- <a name="user-content-check-tag-names-options-enablefixer"></a>
230
- <a name="check-tag-names-options-enablefixer"></a>
231
- ### <code>enableFixer</code>
232
-
233
- Set to `false` to disable auto-removal of types that are redundant with the [`typed` option](#user-content-typed).
234
-
235
- <a name="user-content-check-tag-names-options-jsxtags"></a>
236
- <a name="check-tag-names-options-jsxtags"></a>
237
- ### <code>jsxTags</code>
238
-
239
- If this is set to `true`, all of the following tags used to control JSX output are allowed:
240
-
241
- ```
242
- jsx
243
- jsxFrag
244
- jsxImportSource
245
- jsxRuntime
246
- ```
247
-
248
- For more information, see the [babel documentation](https://babeljs.io/docs/en/babel-plugin-transform-react-jsx).
249
-
250
- <a name="user-content-check-tag-names-options-typed"></a>
251
- <a name="check-tag-names-options-typed"></a>
252
- ### <code>typed</code>
253
-
254
- If this is set to `true`, additionally checks for tag names that are redundant when using a type checker such as TypeScript.
255
-
256
- These tags are always unnecessary when using TypeScript or similar:
257
-
258
- ```
259
- augments
260
- callback
261
- class
262
- enum
263
- implements
264
- private
265
- property
266
- protected
267
- public
268
- readonly
269
- this
270
- type
271
- typedef
272
- ```
273
-
274
- These tags are unnecessary except when inside a TypeScript `declare` context:
275
-
276
- ```
277
- abstract
278
- access
279
- class
280
- constant
281
- constructs
282
- default
283
- enum
284
- export
285
- exports
286
- function
287
- global
288
- inherits
289
- instance
290
- interface
291
- member
292
- memberof
293
- memberOf
294
- method
295
- mixes
296
- mixin
297
- module
298
- name
299
- namespace
300
- override
301
- property
302
- requires
303
- static
304
- this
305
- ```
306
-
307
- <a name="user-content-check-tag-names-context-and-settings"></a>
308
- <a name="check-tag-names-context-and-settings"></a>
309
- ## Context and settings
310
-
311
- |||
312
- |---|---|
313
- |Context|everywhere|
314
- |Tags|N/A|
315
- |Recommended|true|
316
- |Options|`definedTags`, `enableFixer`, `jsxTags`, `typed`|
317
- |Settings|`tagNamePreference`, `mode`|
318
-
319
- <a name="user-content-check-tag-names-failing-examples"></a>
320
- <a name="check-tag-names-failing-examples"></a>
321
- ## Failing examples
322
-
323
- The following patterns are considered problems:
324
-
325
- ````js
326
- /** @type {string} */let a;
327
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
328
- // Message: '@type' is redundant when using a type system.
329
-
330
- /** @type {string} */let a;
331
- // "jsdoc/check-tag-names": ["error"|"warn", {"enableFixer":false,"typed":true}]
332
- // Message: '@type' is redundant when using a type system.
333
-
334
- /** @type {string} */ let a;
335
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
336
- // Message: '@type' is redundant when using a type system.
337
-
338
- /** @type {string} */
339
- let a;
340
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
341
- // Message: '@type' is redundant when using a type system.
342
-
343
- /** @type {string} */
344
- let a;
345
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
346
- // Message: '@type' is redundant when using a type system.
347
-
348
- /** @type {string} - extra info */
349
- let a;
350
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
351
- // Message: '@type' is redundant when using a type system.
352
-
353
- /**
354
- * Existing comment.
355
- * @type {string}
356
- */
357
- let a;
358
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
359
- // Message: '@type' is redundant when using a type system.
360
-
361
- /** @abstract */
362
- let a;
363
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
364
- // Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system.
365
-
366
- /** @abstract */
367
- let a;
368
- // "jsdoc/check-tag-names": ["error"|"warn", {"enableFixer":false,"typed":true}]
369
- // Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system.
370
-
371
- const a = {
372
- /** @abstract */
373
- b: true,
374
- };
375
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
376
- // Message: '@abstract' is redundant outside of ambient (`declare`/`.d.ts`) contexts when using a type system.
377
-
378
- /** @template */
379
- let a;
380
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
381
- // Message: '@template' without a name is redundant when using a type system.
382
-
383
- /**
384
- * Prior description.
385
- *
386
- * @template
387
- */
388
- let a;
389
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
390
- // Message: '@template' without a name is redundant when using a type system.
391
-
392
- /** @typoo {string} */
393
- let a;
394
- // Message: Invalid JSDoc tag name "typoo".
395
-
396
- /** @typoo {string} */
397
- let a;
398
- // Settings: {"jsdoc":{"structuredTags":{"parameter":{"name":"namepath-referencing","required":["type","name"],"type":true}}}}
399
- // Message: Invalid JSDoc tag name "typoo".
400
-
401
- /**
402
- * @Param
403
- */
404
- function quux () {
405
-
406
- }
407
- // Message: Invalid JSDoc tag name "Param".
408
-
409
- /**
410
- * @foo
411
- */
412
- function quux () {
413
-
414
- }
415
- // Message: Invalid JSDoc tag name "foo".
416
-
417
- /**
418
- * @arg foo
419
- */
420
- function quux (foo) {
421
-
422
- }
423
- // Message: Invalid JSDoc tag (preference). Replace "arg" JSDoc tag with "param".
424
-
425
- /**
426
- * @param foo
427
- */
428
- function quux (foo) {
429
-
430
- }
431
- // Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}}
432
- // Message: Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "arg".
433
-
434
- /**
435
- * @constructor foo
436
- */
437
- function quux (foo) {
438
-
439
- }
440
- // Settings: {"jsdoc":{"tagNamePreference":{"tag constructor":"cons"}}}
441
- // Message: Invalid JSDoc tag (preference). Replace "constructor" JSDoc tag with "cons".
442
-
443
- /**
444
- * @arg foo
445
- */
446
- function quux (foo) {
447
-
448
- }
449
- // Settings: {"jsdoc":{"tagNamePreference":{"arg":"somethingDifferent"}}}
450
- // Message: Invalid JSDoc tag (preference). Replace "arg" JSDoc tag with "somethingDifferent".
451
-
452
- /**
453
- * @param foo
454
- */
455
- function quux (foo) {
456
-
457
- }
458
- // Settings: {"jsdoc":{"tagNamePreference":{"param":"parameter"}}}
459
- // Message: Invalid JSDoc tag (preference). Replace "param" JSDoc tag with "parameter".
460
-
461
- /**
462
- * @bar foo
463
- */
464
- function quux (foo) {
465
-
466
- }
467
- // Message: Invalid JSDoc tag name "bar".
468
-
469
- /**
470
- * @baz @bar foo
471
- */
472
- function quux (foo) {
473
-
474
- }
475
- // "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["bar"]}]
476
- // Message: Invalid JSDoc tag name "baz".
477
-
478
- /**
479
- * @bar
480
- * @baz
481
- */
482
- function quux (foo) {
483
-
484
- }
485
- // "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["bar"]}]
486
- // Message: Invalid JSDoc tag name "baz".
487
-
488
- /**
489
- * @todo
490
- */
491
- function quux () {
492
-
493
- }
494
- // Settings: {"jsdoc":{"tagNamePreference":{"todo":false}}}
495
- // Message: Blacklisted tag found (`@todo`)
496
-
497
- /**
498
- * @todo
499
- */
500
- function quux () {
501
-
502
- }
503
- // Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please resolve to-dos or add to the tracker"}}}}
504
- // Message: Please resolve to-dos or add to the tracker
505
-
506
- /**
507
- * @todo
508
- */
509
- function quux () {
510
-
511
- }
512
- // Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please use x-todo instead of todo","replacement":"x-todo"}}}}
513
- // Message: Please use x-todo instead of todo
514
-
515
- /**
516
- * @todo
517
- */
518
- function quux () {
519
-
520
- }
521
- // Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please use x-todo instead of todo","replacement":"x-todo"}}}}
522
- // Message: Please use x-todo instead of todo
523
-
524
- /**
525
- * @todo
526
- */
527
- function quux () {
528
-
529
- }
530
- // Settings: {"jsdoc":{"tagNamePreference":{"todo":55}}}
531
- // Message: Invalid `settings.jsdoc.tagNamePreference`. Values must be falsy, a string, or an object.
532
-
533
- /**
534
- * @property {object} a
535
- * @prop {boolean} b
536
- */
537
- function quux () {
538
-
539
- }
540
- // Message: Invalid JSDoc tag (preference). Replace "prop" JSDoc tag with "property".
541
-
542
- /**
543
- * @abc foo
544
- * @abcd bar
545
- */
546
- function quux () {
547
-
548
- }
549
- // Settings: {"jsdoc":{"tagNamePreference":{"abc":"abcd"}}}
550
- // "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["abcd"]}]
551
- // Message: Invalid JSDoc tag (preference). Replace "abc" JSDoc tag with "abcd".
552
-
553
- /**
554
- * @abc
555
- * @abcd
556
- */
557
- function quux () {
558
-
559
- }
560
- // Settings: {"jsdoc":{"tagNamePreference":{"abc":"abcd"}}}
561
- // Message: Invalid JSDoc tag (preference). Replace "abc" JSDoc tag with "abcd".
562
-
563
- /**
564
- * @returns
565
- */
566
- function quux (foo) {}
567
- // Settings: {"jsdoc":{"mode":"closure"}}
568
- // Message: Invalid JSDoc tag (preference). Replace "returns" JSDoc tag with "return".
569
-
570
- /**
571
- * @modifies
572
- * @abstract
573
- * @access
574
- * @alias
575
- * @async
576
- * @augments
577
- * @author
578
- * @borrows
579
- * @callback
580
- * @class
581
- * @classdesc
582
- * @constant
583
- * @constructs
584
- * @copyright
585
- * @default
586
- * @deprecated
587
- * @description
588
- * @enum
589
- * @event
590
- * @example
591
- * @exports
592
- * @external
593
- * @file
594
- * @fires
595
- * @function
596
- * @generator
597
- * @global
598
- * @hideconstructor
599
- * @ignore
600
- * @implements
601
- * @inheritdoc
602
- * @inheritDoc
603
- * @inner
604
- * @instance
605
- * @interface
606
- * @kind
607
- * @lends
608
- * @license
609
- * @listens
610
- * @member
611
- * @memberof
612
- * @memberof!
613
- * @mixes
614
- * @mixin
615
- * @module
616
- * @name
617
- * @namespace
618
- * @override
619
- * @package
620
- * @param
621
- * @private
622
- * @property
623
- * @protected
624
- * @public
625
- * @readonly
626
- * @requires
627
- * @returns
628
- * @see
629
- * @since
630
- * @static
631
- * @summary
632
- * @this
633
- * @throws
634
- * @todo
635
- * @tutorial
636
- * @type
637
- * @typedef
638
- * @variation
639
- * @version
640
- * @yields
641
- */
642
- function quux (foo) {}
643
- // Settings: {"jsdoc":{"mode":"badMode"}}
644
- // Message: Unrecognized value `badMode` for `settings.jsdoc.mode`.
645
-
646
- /**
647
- * @modifies
648
- * @abstract
649
- * @access
650
- * @alias
651
- * @async
652
- * @augments
653
- * @author
654
- * @borrows
655
- * @callback
656
- * @class
657
- * @classdesc
658
- * @constant
659
- * @constructs
660
- * @copyright
661
- * @default
662
- * @deprecated
663
- * @description
664
- * @enum
665
- * @event
666
- * @example
667
- * @exports
668
- * @external
669
- * @file
670
- * @fires
671
- * @function
672
- * @generator
673
- * @global
674
- * @hideconstructor
675
- * @ignore
676
- * @implements
677
- * @inheritdoc
678
- * @inheritDoc
679
- * @inner
680
- * @instance
681
- * @interface
682
- * @kind
683
- * @lends
684
- * @license
685
- * @listens
686
- * @member
687
- * @memberof
688
- * @memberof!
689
- * @mixes
690
- * @mixin
691
- * @module
692
- * @name
693
- * @namespace
694
- * @override
695
- * @package
696
- * @param
697
- * @private
698
- * @property
699
- * @protected
700
- * @public
701
- * @readonly
702
- * @requires
703
- * @returns
704
- * @see
705
- * @since
706
- * @static
707
- * @summary
708
- * @this
709
- * @throws
710
- * @todo
711
- * @tutorial
712
- * @type
713
- * @typedef
714
- * @variation
715
- * @version
716
- * @yields
717
- * @internal
718
- * @overload
719
- * @satisfies
720
- * @template
721
- */
722
- function quux (foo) {}
723
- // Settings: {"jsdoc":{"mode":"jsdoc"}}
724
- // Message: Invalid JSDoc tag name "internal".
725
-
726
- /**
727
- * @externs
728
- */
729
- function quux (foo) {}
730
- // Message: Invalid JSDoc tag name "externs".
731
-
732
- /** @jsx h */
733
- /** @jsxFrag Fragment */
734
- /** @jsxImportSource preact */
735
- /** @jsxRuntime automatic */
736
- // Message: Invalid JSDoc tag name "jsx".
737
-
738
- /**
739
- * @constructor
740
- */
741
- function Test() {
742
- this.works = false;
743
- }
744
- // Settings: {"jsdoc":{"tagNamePreference":{"returns":"return"}}}
745
- // Message: Invalid JSDoc tag (preference). Replace "constructor" JSDoc tag with "class".
746
-
747
- /** @typedef {Object} MyObject
748
- * @property {string} id - my id
749
- */
750
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
751
- // Message: '@typedef' is redundant when using a type system.
752
-
753
- /**
754
- * @property {string} id - my id
755
- */
756
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
757
- // Message: '@property' is redundant when using a type system.
758
-
759
- /** @typedef {Object} MyObject */
760
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
761
- // Message: '@typedef' is redundant when using a type system.
762
-
763
- /** @typedef {Object} MyObject
764
- */
765
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
766
- // Message: '@typedef' is redundant when using a type system.
767
-
768
- /**
769
- * @todo
770
- */
771
- function quux () {
772
-
773
- }
774
- // Settings: {"jsdoc":{"tagNamePreference":{"todo":{"message":"Please don't use todo"}}}}
775
- // Message: Please don't use todo
776
- ````
777
-
778
-
779
-
780
- <a name="user-content-check-tag-names-passing-examples"></a>
781
- <a name="check-tag-names-passing-examples"></a>
782
- ## Passing examples
783
-
784
- The following patterns are not considered problems:
785
-
786
- ````js
787
- /** @default 0 */
788
- let a;
789
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
790
-
791
- /** @default 0 */
792
- declare let a;
793
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
794
-
795
- /** @abstract */
796
- let a;
797
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
798
-
799
- /** @abstract */
800
- declare let a;
801
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
802
-
803
- /** @abstract */
804
- { declare let a; }
805
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
806
-
807
- function test() {
808
- /** @abstract */
809
- declare let a;
810
- }
811
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
812
-
813
- /** @template name */
814
- let a;
815
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
816
-
817
- /** @param param - takes information */
818
- function takesOne(param) {}
819
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
820
-
821
- /**
822
- * @param foo
823
- */
824
- function quux (foo) {
825
-
826
- }
827
-
828
- /**
829
- * @memberof! foo
830
- */
831
- function quux (foo) {
832
-
833
- }
834
-
835
- /**
836
- * @arg foo
837
- */
838
- function quux (foo) {
839
-
840
- }
841
- // Settings: {"jsdoc":{"tagNamePreference":{"param":"arg"}}}
842
-
843
- /**
844
- * @parameter foo
845
- */
846
- function quux (foo) {
847
-
848
- }
849
- // Settings: {"jsdoc":{"structuredTags":{"parameter":{"name":"namepath-referencing","required":["type","name"],"type":true}}}}
850
-
851
- /**
852
- * @bar foo
853
- */
854
- function quux (foo) {
855
-
856
- }
857
- // "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["bar"]}]
858
-
859
- /**
860
- * @baz @bar foo
861
- */
862
- function quux (foo) {
863
-
864
- }
865
- // "jsdoc/check-tag-names": ["error"|"warn", {"definedTags":["baz","bar"]}]
866
-
867
- /**
868
- * @baz @bar foo
869
- */
870
- function quux (foo) {
871
-
872
- }
873
- // Settings: {"jsdoc":{"tagNamePreference":{"param":"baz","returns":{"message":"Prefer `bar`","replacement":"bar"},"todo":false}}}
874
-
875
- /**
876
- * @returns
877
- */
878
- function quux (foo) {}
879
-
880
- /**
881
- * @return
882
- */
883
- function quux (foo) {}
884
- // Settings: {"jsdoc":{"mode":"closure"}}
885
-
886
- /**
887
- * @modifies
888
- * @abstract
889
- * @access
890
- * @alias
891
- * @async
892
- * @augments
893
- * @author
894
- * @borrows
895
- * @callback
896
- * @class
897
- * @classdesc
898
- * @constant
899
- * @constructs
900
- * @copyright
901
- * @default
902
- * @deprecated
903
- * @description
904
- * @enum
905
- * @event
906
- * @example
907
- * @exports
908
- * @external
909
- * @file
910
- * @fires
911
- * @function
912
- * @generator
913
- * @global
914
- * @hideconstructor
915
- * @ignore
916
- * @implements
917
- * @inheritdoc
918
- * @inheritDoc
919
- * @inner
920
- * @instance
921
- * @interface
922
- * @kind
923
- * @lends
924
- * @license
925
- * @listens
926
- * @member
927
- * @memberof
928
- * @memberof!
929
- * @mixes
930
- * @mixin
931
- * @module
932
- * @name
933
- * @namespace
934
- * @override
935
- * @package
936
- * @param
937
- * @private
938
- * @property
939
- * @protected
940
- * @public
941
- * @readonly
942
- * @requires
943
- * @returns
944
- * @see
945
- * @since
946
- * @static
947
- * @summary
948
- * @this
949
- * @throws
950
- * @todo
951
- * @tutorial
952
- * @type
953
- * @typedef
954
- * @variation
955
- * @version
956
- * @yields
957
- */
958
- function quux (foo) {}
959
-
960
- /**
961
- * @modifies
962
- * @abstract
963
- * @access
964
- * @alias
965
- * @async
966
- * @augments
967
- * @author
968
- * @borrows
969
- * @callback
970
- * @class
971
- * @classdesc
972
- * @constant
973
- * @constructs
974
- * @copyright
975
- * @default
976
- * @deprecated
977
- * @description
978
- * @enum
979
- * @event
980
- * @example
981
- * @exports
982
- * @external
983
- * @file
984
- * @fires
985
- * @function
986
- * @generator
987
- * @global
988
- * @hideconstructor
989
- * @ignore
990
- * @implements
991
- * @inheritdoc
992
- * @inheritDoc
993
- * @inner
994
- * @instance
995
- * @interface
996
- * @kind
997
- * @lends
998
- * @license
999
- * @listens
1000
- * @member
1001
- * @memberof
1002
- * @memberof!
1003
- * @mixes
1004
- * @mixin
1005
- * @module
1006
- * @name
1007
- * @namespace
1008
- * @override
1009
- * @package
1010
- * @param
1011
- * @private
1012
- * @property
1013
- * @protected
1014
- * @public
1015
- * @readonly
1016
- * @requires
1017
- * @returns
1018
- * @see
1019
- * @since
1020
- * @static
1021
- * @summary
1022
- * @this
1023
- * @throws
1024
- * @todo
1025
- * @tutorial
1026
- * @type
1027
- * @typedef
1028
- * @variation
1029
- * @version
1030
- * @yields
1031
- * @internal
1032
- * @overload
1033
- * @satisfies
1034
- * @template
1035
- */
1036
- function quux (foo) {}
1037
- // Settings: {"jsdoc":{"mode":"typescript"}}
1038
-
1039
- /**
1040
- * @externs
1041
- */
1042
- function quux (foo) {}
1043
- // Settings: {"jsdoc":{"mode":"closure"}}
1044
-
1045
- /**
1046
- *
1047
- */
1048
- function quux (foo) {
1049
-
1050
- }
1051
-
1052
- /**
1053
- * @todo
1054
- */
1055
- function quux () {
1056
-
1057
- }
1058
-
1059
- /**
1060
- * @extends Foo
1061
- */
1062
- function quux () {
1063
-
1064
- }
1065
- // Settings: {"jsdoc":{"tagNamePreference":{"augments":{"message":"@extends is to be used over @augments.","replacement":"extends"}}}}
1066
-
1067
- /**
1068
- * (Set tag name preference to itself to get aliases to
1069
- * work along with main tag name.)
1070
- * @augments Bar
1071
- * @extends Foo
1072
- */
1073
- function quux () {
1074
- }
1075
- // Settings: {"jsdoc":{"tagNamePreference":{"extends":"extends"}}}
1076
-
1077
- /**
1078
- * Registers the `target` class as a transient dependency; each time the dependency is resolved a new instance will be created.
1079
- *
1080
- * @param target - The class / constructor function to register as transient.
1081
- *
1082
- * @example ```ts
1083
- @transient()
1084
- class Foo { }
1085
- ```
1086
- * @param Time for a new tag
1087
- */
1088
- export function transient<T>(target?: T): T {
1089
- // ...
1090
- }
1091
-
1092
- /** @jsx h */
1093
- /** @jsxFrag Fragment */
1094
- /** @jsxImportSource preact */
1095
- /** @jsxRuntime automatic */
1096
- // "jsdoc/check-tag-names": ["error"|"warn", {"jsxTags":true}]
1097
-
1098
- /**
1099
- * @internal
1100
- */
1101
- // Settings: {"jsdoc":{"mode":"typescript"}}
1102
-
1103
- interface WebTwain {
1104
- /**
1105
- * Converts the images specified by the indices to base64 synchronously.
1106
- * @function WebTwain#ConvertToBase64
1107
- * @returns {Base64Result}
1108
-
1109
- ConvertToBase64(): Base64Result;
1110
- */
1111
-
1112
- /**
1113
- * Converts the images specified by the indices to base64 asynchronously.
1114
- * @function WebTwain#ConvertToBase64
1115
- * @returns {boolean}
1116
- */
1117
- ConvertToBase64(): boolean;
1118
- }
1119
-
1120
- /**
1121
- * @overload
1122
- * @satisfies
1123
- */
1124
- // Settings: {"jsdoc":{"mode":"typescript"}}
1125
-
1126
- /**
1127
- * @module
1128
- * A comment related to the module
1129
- */
1130
- // "jsdoc/check-tag-names": ["error"|"warn", {"typed":true}]
1131
- ````
1132
-