eslint-plugin-jsdoc 44.2.3 → 44.2.5

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 (120) hide show
  1. package/dist/WarnSettings.js +0 -1
  2. package/dist/WarnSettings.js.map +1 -1
  3. package/dist/alignTransform.js +87 -5
  4. package/dist/alignTransform.js.map +1 -1
  5. package/dist/bin/generateRule.js +4 -3
  6. package/dist/bin/generateRule.js.map +1 -1
  7. package/dist/exportParser.js +272 -71
  8. package/dist/exportParser.js.map +1 -1
  9. package/dist/generateRule.js +4 -3
  10. package/dist/generateRule.js.map +1 -1
  11. package/dist/iterateJsdoc.js +921 -357
  12. package/dist/iterateJsdoc.js.map +1 -1
  13. package/dist/jsdocUtils.js +270 -168
  14. package/dist/jsdocUtils.js.map +1 -1
  15. package/dist/rules/checkAlignment.js +6 -0
  16. package/dist/rules/checkAlignment.js.map +1 -1
  17. package/dist/rules/checkExamples.js +73 -9
  18. package/dist/rules/checkExamples.js.map +1 -1
  19. package/dist/rules/checkIndentation.js +12 -2
  20. package/dist/rules/checkIndentation.js.map +1 -1
  21. package/dist/rules/checkLineAlignment.js +71 -7
  22. package/dist/rules/checkLineAlignment.js.map +1 -1
  23. package/dist/rules/checkParamNames.js +29 -11
  24. package/dist/rules/checkParamNames.js.map +1 -1
  25. package/dist/rules/checkPropertyNames.js +13 -7
  26. package/dist/rules/checkPropertyNames.js.map +1 -1
  27. package/dist/rules/checkTagNames.js +45 -9
  28. package/dist/rules/checkTagNames.js.map +1 -1
  29. package/dist/rules/checkTypes.js +98 -41
  30. package/dist/rules/checkTypes.js.map +1 -1
  31. package/dist/rules/checkValues.js +7 -7
  32. package/dist/rules/checkValues.js.map +1 -1
  33. package/dist/rules/emptyTags.js +8 -1
  34. package/dist/rules/emptyTags.js.map +1 -1
  35. package/dist/rules/informativeDocs.js +27 -8
  36. package/dist/rules/informativeDocs.js.map +1 -1
  37. package/dist/rules/matchDescription.js +18 -1
  38. package/dist/rules/matchDescription.js.map +1 -1
  39. package/dist/rules/matchName.js +2 -2
  40. package/dist/rules/matchName.js.map +1 -1
  41. package/dist/rules/multilineBlocks.js +12 -1
  42. package/dist/rules/multilineBlocks.js.map +1 -1
  43. package/dist/rules/noBadBlocks.js +4 -6
  44. package/dist/rules/noBadBlocks.js.map +1 -1
  45. package/dist/rules/noBlankBlockDescriptions.js +2 -0
  46. package/dist/rules/noBlankBlockDescriptions.js.map +1 -1
  47. package/dist/rules/noMissingSyntax.js +53 -16
  48. package/dist/rules/noMissingSyntax.js.map +1 -1
  49. package/dist/rules/noMultiAsterisks.js +1 -6
  50. package/dist/rules/noMultiAsterisks.js.map +1 -1
  51. package/dist/rules/noRestrictedSyntax.js +12 -5
  52. package/dist/rules/noRestrictedSyntax.js.map +1 -1
  53. package/dist/rules/noTypes.js +3 -0
  54. package/dist/rules/noTypes.js.map +1 -1
  55. package/dist/rules/noUndefinedTypes.js +65 -27
  56. package/dist/rules/noUndefinedTypes.js.map +1 -1
  57. package/dist/rules/requireAsteriskPrefix.js +20 -0
  58. package/dist/rules/requireAsteriskPrefix.js.map +1 -1
  59. package/dist/rules/requireDescription.js +6 -2
  60. package/dist/rules/requireDescription.js.map +1 -1
  61. package/dist/rules/requireDescriptionCompleteSentence.js +75 -12
  62. package/dist/rules/requireDescriptionCompleteSentence.js.map +1 -1
  63. package/dist/rules/requireFileOverview.js +9 -4
  64. package/dist/rules/requireFileOverview.js.map +1 -1
  65. package/dist/rules/requireHyphenBeforeParamDescription.js +21 -7
  66. package/dist/rules/requireHyphenBeforeParamDescription.js.map +1 -1
  67. package/dist/rules/requireJsdoc.js +150 -29
  68. package/dist/rules/requireJsdoc.js.map +1 -1
  69. package/dist/rules/requireParam.js +116 -10
  70. package/dist/rules/requireParam.js.map +1 -1
  71. package/dist/rules/requireProperty.js +1 -1
  72. package/dist/rules/requireProperty.js.map +1 -1
  73. package/dist/rules/requireReturns.js +2 -3
  74. package/dist/rules/requireReturns.js.map +1 -1
  75. package/dist/rules/requireReturnsCheck.js +9 -2
  76. package/dist/rules/requireReturnsCheck.js.map +1 -1
  77. package/dist/rules/requireThrows.js +2 -3
  78. package/dist/rules/requireThrows.js.map +1 -1
  79. package/dist/rules/requireYields.js +9 -3
  80. package/dist/rules/requireYields.js.map +1 -1
  81. package/dist/rules/requireYieldsCheck.js +19 -5
  82. package/dist/rules/requireYieldsCheck.js.map +1 -1
  83. package/dist/rules/sortTags.js +67 -9
  84. package/dist/rules/sortTags.js.map +1 -1
  85. package/dist/rules/tagLines.js +22 -3
  86. package/dist/rules/tagLines.js.map +1 -1
  87. package/dist/rules/textEscaping.js +18 -4
  88. package/dist/rules/textEscaping.js.map +1 -1
  89. package/dist/rules/validTypes.js +26 -9
  90. package/dist/rules/validTypes.js.map +1 -1
  91. package/dist/tagNames.js +0 -2
  92. package/dist/tagNames.js.map +1 -1
  93. package/dist/utils/hasReturnValue.js +77 -48
  94. package/dist/utils/hasReturnValue.js.map +1 -1
  95. package/docs/rules/check-line-alignment.md +7 -0
  96. package/docs/rules/check-tag-names.md +15 -0
  97. package/docs/rules/no-missing-syntax.md +6 -0
  98. package/docs/rules/no-undefined-types.md +6 -0
  99. package/docs/rules/require-description-complete-sentence.md +525 -289
  100. package/docs/rules/require-description.md +289 -525
  101. package/docs/rules/require-file-overview.md +7 -0
  102. package/docs/rules/require-jsdoc.md +1 -1
  103. package/docs/rules/require-param-description.md +116 -1694
  104. package/docs/rules/require-param-name.md +58 -133
  105. package/docs/rules/require-param-type.md +119 -55
  106. package/docs/rules/require-param.md +1704 -111
  107. package/docs/rules/require-property-description.md +39 -79
  108. package/docs/rules/require-property-name.md +21 -30
  109. package/docs/rules/require-property-type.md +21 -21
  110. package/docs/rules/require-property.md +82 -33
  111. package/docs/rules/require-returns-check.md +636 -747
  112. package/docs/rules/require-returns-description.md +61 -933
  113. package/docs/rules/require-returns-type.md +42 -79
  114. package/docs/rules/require-returns.md +1081 -61
  115. package/docs/rules/require-yields-check.md +238 -517
  116. package/docs/rules/require-yields.md +517 -238
  117. package/docs/rules/valid-types.md +1 -1
  118. package/docs/settings.md +3 -1
  119. package/package.json +10 -9
  120. package/tsconfig.json +2 -3
@@ -1,128 +1,88 @@
1
- <a name="user-content-require-property"></a>
2
- <a name="require-property"></a>
3
- # <code>require-property</code>
1
+ <a name="user-content-require-property-description"></a>
2
+ <a name="require-property-description"></a>
3
+ # <code>require-property-description</code>
4
4
 
5
- * [Fixer](#user-content-require-property-fixer)
6
- * [Context and settings](#user-content-require-property-context-and-settings)
7
- * [Failing examples](#user-content-require-property-failing-examples)
8
- * [Passing examples](#user-content-require-property-passing-examples)
5
+ * [Context and settings](#user-content-require-property-description-context-and-settings)
6
+ * [Failing examples](#user-content-require-property-description-failing-examples)
7
+ * [Passing examples](#user-content-require-property-description-passing-examples)
9
8
 
10
9
 
11
- Requires that all `@typedef` and `@namespace` tags have `@property`
12
- tags when their type is a plain `object`, `Object`, or `PlainObject`.
10
+ Requires that each `@property` tag has a `description` value.
13
11
 
14
- Note that any other type, including a subtype of object such as
15
- `object<string, string>`, will not be reported.
16
-
17
- <a name="user-content-require-property-fixer"></a>
18
- <a name="require-property-fixer"></a>
19
- ## Fixer
20
-
21
- The fixer for `require-property` will add an empty `@property`.
22
-
23
- <a name="user-content-require-property-context-and-settings"></a>
24
- <a name="require-property-context-and-settings"></a>
12
+ <a name="user-content-require-property-description-context-and-settings"></a>
13
+ <a name="require-property-description-context-and-settings"></a>
25
14
  ## Context and settings
26
15
 
27
16
  |||
28
17
  |---|---|
29
- |Context|Everywhere|
30
- |Tags|`typedef`, `namespace`|
18
+ |Context|everywhere|
19
+ |Tags|`property`|
20
+ |Aliases|`prop`|
31
21
  |Recommended|true|
32
22
 
33
- <a name="user-content-require-property-failing-examples"></a>
34
- <a name="require-property-failing-examples"></a>
23
+ <a name="user-content-require-property-description-failing-examples"></a>
24
+ <a name="require-property-description-failing-examples"></a>
35
25
  ## Failing examples
36
26
 
37
27
  The following patterns are considered problems:
38
28
 
39
29
  ````js
40
30
  /**
41
- * @typedef {object} SomeTypedef
31
+ * @typedef {SomeType} SomeTypedef
32
+ * @property foo
42
33
  */
43
- // Message: Missing JSDoc @property.
44
-
45
- class Test {
46
- /**
47
- * @typedef {object} SomeTypedef
48
- */
49
- quux () {}
50
- }
51
- // Message: Missing JSDoc @property.
34
+ // Message: Missing JSDoc @property "foo" description.
52
35
 
53
36
  /**
54
- * @typedef {PlainObject} SomeTypedef
37
+ * @typedef {SomeType} SomeTypedef
38
+ * @prop foo
55
39
  */
56
40
  // Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
57
- // Message: Missing JSDoc @prop.
41
+ // Message: Missing JSDoc @prop "foo" description.
58
42
 
59
43
  /**
60
- * @namespace {Object} SomeName
44
+ * @typedef {SomeType} SomeTypedef
45
+ * @property foo
61
46
  */
62
- // Message: Missing JSDoc @property.
47
+ // Settings: {"jsdoc":{"tagNamePreference":{"property":false}}}
48
+ // Message: Unexpected tag `@property`
63
49
  ````
64
50
 
65
51
 
66
52
 
67
- <a name="user-content-require-property-passing-examples"></a>
68
- <a name="require-property-passing-examples"></a>
53
+ <a name="user-content-require-property-description-passing-examples"></a>
54
+ <a name="require-property-description-passing-examples"></a>
69
55
  ## Passing examples
70
56
 
71
57
  The following patterns are not considered problems:
72
58
 
73
59
  ````js
74
60
  /**
75
- *
76
- */
77
-
78
- /**
79
- * @property
80
- */
81
-
82
- /**
83
- * @typedef {Object} SomeTypedef
84
- * @property {SomeType} propName Prop description
61
+ * @typedef {SomeType} SomeTypedef
85
62
  */
86
63
 
87
64
  /**
88
- * @typedef {object} SomeTypedef
89
- * @prop {SomeType} propName Prop description
65
+ * @typedef {SomeType} SomeTypedef
66
+ * @property foo Foo.
90
67
  */
91
- // Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
92
68
 
93
69
  /**
94
- * @typedef {object} SomeTypedef
95
- * @property
96
- * // arbitrary property content
70
+ * @namespace {SomeType} SomeName
71
+ * @property foo Foo.
97
72
  */
98
73
 
99
74
  /**
100
- * @typedef {object<string, string>} SomeTypedef
75
+ * @class
76
+ * @property foo Foo.
101
77
  */
102
78
 
103
79
  /**
104
- * @typedef {string} SomeTypedef
105
- */
106
-
107
- /**
108
- * @namespace {object} SomeName
109
- * @property {SomeType} propName Prop description
110
- */
111
-
112
- /**
113
- * @namespace {object} SomeName
114
- * @property
115
- * // arbitrary property content
116
- */
117
-
118
- /**
119
- * @typedef {object} SomeTypedef
120
- * @property someProp
121
- * @property anotherProp This with a description
122
- * @property {anotherType} yetAnotherProp This with a type and desc.
80
+ * Typedef with multi-line property type.
81
+ *
82
+ * @typedef {object} MyType
83
+ * @property {function(
84
+ * number
85
+ * )} numberEater Method which takes a number.
123
86
  */
124
- function quux () {
125
-
126
- }
127
87
  ````
128
88
 
@@ -1,16 +1,16 @@
1
- <a name="user-content-require-property-description"></a>
2
- <a name="require-property-description"></a>
3
- # <code>require-property-description</code>
1
+ <a name="user-content-require-property-name"></a>
2
+ <a name="require-property-name"></a>
3
+ # <code>require-property-name</code>
4
4
 
5
- * [Context and settings](#user-content-require-property-description-context-and-settings)
6
- * [Failing examples](#user-content-require-property-description-failing-examples)
7
- * [Passing examples](#user-content-require-property-description-passing-examples)
5
+ * [Context and settings](#user-content-require-property-name-context-and-settings)
6
+ * [Failing examples](#user-content-require-property-name-failing-examples)
7
+ * [Passing examples](#user-content-require-property-name-passing-examples)
8
8
 
9
9
 
10
- Requires that each `@property` tag has a `description` value.
10
+ Requires that all `@property` tags have names.
11
11
 
12
- <a name="user-content-require-property-description-context-and-settings"></a>
13
- <a name="require-property-description-context-and-settings"></a>
12
+ <a name="user-content-require-property-name-context-and-settings"></a>
13
+ <a name="require-property-name-context-and-settings"></a>
14
14
  ## Context and settings
15
15
 
16
16
  |||
@@ -20,8 +20,8 @@ Requires that each `@property` tag has a `description` value.
20
20
  |Aliases|`prop`|
21
21
  |Recommended|true|
22
22
 
23
- <a name="user-content-require-property-description-failing-examples"></a>
24
- <a name="require-property-description-failing-examples"></a>
23
+ <a name="user-content-require-property-name-failing-examples"></a>
24
+ <a name="require-property-name-failing-examples"></a>
25
25
  ## Failing examples
26
26
 
27
27
  The following patterns are considered problems:
@@ -29,16 +29,15 @@ The following patterns are considered problems:
29
29
  ````js
30
30
  /**
31
31
  * @typedef {SomeType} SomeTypedef
32
- * @property foo
32
+ * @property
33
33
  */
34
- // Message: Missing JSDoc @property "foo" description.
34
+ // Message: There must be an identifier after @property type.
35
35
 
36
36
  /**
37
37
  * @typedef {SomeType} SomeTypedef
38
- * @prop foo
38
+ * @property {string}
39
39
  */
40
- // Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
41
- // Message: Missing JSDoc @prop "foo" description.
40
+ // Message: There must be an identifier after @property tag.
42
41
 
43
42
  /**
44
43
  * @typedef {SomeType} SomeTypedef
@@ -50,8 +49,8 @@ The following patterns are considered problems:
50
49
 
51
50
 
52
51
 
53
- <a name="user-content-require-property-description-passing-examples"></a>
54
- <a name="require-property-description-passing-examples"></a>
52
+ <a name="user-content-require-property-name-passing-examples"></a>
53
+ <a name="require-property-name-passing-examples"></a>
55
54
  ## Passing examples
56
55
 
57
56
  The following patterns are not considered problems:
@@ -59,30 +58,22 @@ The following patterns are not considered problems:
59
58
  ````js
60
59
  /**
61
60
  * @typedef {SomeType} SomeTypedef
61
+ * @property foo
62
62
  */
63
63
 
64
64
  /**
65
65
  * @typedef {SomeType} SomeTypedef
66
- * @property foo Foo.
66
+ * @property {string} foo
67
67
  */
68
68
 
69
69
  /**
70
70
  * @namespace {SomeType} SomeName
71
- * @property foo Foo.
71
+ * @property {string} foo
72
72
  */
73
73
 
74
74
  /**
75
75
  * @class
76
- * @property foo Foo.
77
- */
78
-
79
- /**
80
- * Typedef with multi-line property type.
81
- *
82
- * @typedef {object} MyType
83
- * @property {function(
84
- * number
85
- * )} numberEater Method which takes a number.
76
+ * @property {string} foo
86
77
  */
87
78
  ````
88
79
 
@@ -1,16 +1,16 @@
1
- <a name="user-content-require-property-name"></a>
2
- <a name="require-property-name"></a>
3
- # <code>require-property-name</code>
1
+ <a name="user-content-require-property-type"></a>
2
+ <a name="require-property-type"></a>
3
+ # <code>require-property-type</code>
4
4
 
5
- * [Context and settings](#user-content-require-property-name-context-and-settings)
6
- * [Failing examples](#user-content-require-property-name-failing-examples)
7
- * [Passing examples](#user-content-require-property-name-passing-examples)
5
+ * [Context and settings](#user-content-require-property-type-context-and-settings)
6
+ * [Failing examples](#user-content-require-property-type-failing-examples)
7
+ * [Passing examples](#user-content-require-property-type-passing-examples)
8
8
 
9
9
 
10
- Requires that all `@property` tags have names.
10
+ Requires that each `@property` tag has a type value (within curly brackets).
11
11
 
12
- <a name="user-content-require-property-name-context-and-settings"></a>
13
- <a name="require-property-name-context-and-settings"></a>
12
+ <a name="user-content-require-property-type-context-and-settings"></a>
13
+ <a name="require-property-type-context-and-settings"></a>
14
14
  ## Context and settings
15
15
 
16
16
  |||
@@ -20,8 +20,8 @@ Requires that all `@property` tags have names.
20
20
  |Aliases|`prop`|
21
21
  |Recommended|true|
22
22
 
23
- <a name="user-content-require-property-name-failing-examples"></a>
24
- <a name="require-property-name-failing-examples"></a>
23
+ <a name="user-content-require-property-type-failing-examples"></a>
24
+ <a name="require-property-type-failing-examples"></a>
25
25
  ## Failing examples
26
26
 
27
27
  The following patterns are considered problems:
@@ -29,15 +29,16 @@ The following patterns are considered problems:
29
29
  ````js
30
30
  /**
31
31
  * @typedef {SomeType} SomeTypedef
32
- * @property
32
+ * @property foo
33
33
  */
34
- // Message: There must be an identifier after @property type.
34
+ // Message: Missing JSDoc @property "foo" type.
35
35
 
36
36
  /**
37
37
  * @typedef {SomeType} SomeTypedef
38
- * @property {string}
38
+ * @prop foo
39
39
  */
40
- // Message: There must be an identifier after @property tag.
40
+ // Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
41
+ // Message: Missing JSDoc @prop "foo" type.
41
42
 
42
43
  /**
43
44
  * @typedef {SomeType} SomeTypedef
@@ -49,8 +50,8 @@ The following patterns are considered problems:
49
50
 
50
51
 
51
52
 
52
- <a name="user-content-require-property-name-passing-examples"></a>
53
- <a name="require-property-name-passing-examples"></a>
53
+ <a name="user-content-require-property-type-passing-examples"></a>
54
+ <a name="require-property-type-passing-examples"></a>
54
55
  ## Passing examples
55
56
 
56
57
  The following patterns are not considered problems:
@@ -58,22 +59,21 @@ The following patterns are not considered problems:
58
59
  ````js
59
60
  /**
60
61
  * @typedef {SomeType} SomeTypedef
61
- * @property foo
62
62
  */
63
63
 
64
64
  /**
65
65
  * @typedef {SomeType} SomeTypedef
66
- * @property {string} foo
66
+ * @property {number} foo
67
67
  */
68
68
 
69
69
  /**
70
70
  * @namespace {SomeType} SomeName
71
- * @property {string} foo
71
+ * @property {number} foo
72
72
  */
73
73
 
74
74
  /**
75
75
  * @class
76
- * @property {string} foo
76
+ * @property {number} foo
77
77
  */
78
78
  ````
79
79
 
@@ -1,79 +1,128 @@
1
- <a name="user-content-require-property-type"></a>
2
- <a name="require-property-type"></a>
3
- # <code>require-property-type</code>
1
+ <a name="user-content-require-property"></a>
2
+ <a name="require-property"></a>
3
+ # <code>require-property</code>
4
4
 
5
- * [Context and settings](#user-content-require-property-type-context-and-settings)
6
- * [Failing examples](#user-content-require-property-type-failing-examples)
7
- * [Passing examples](#user-content-require-property-type-passing-examples)
5
+ * [Fixer](#user-content-require-property-fixer)
6
+ * [Context and settings](#user-content-require-property-context-and-settings)
7
+ * [Failing examples](#user-content-require-property-failing-examples)
8
+ * [Passing examples](#user-content-require-property-passing-examples)
8
9
 
9
10
 
10
- Requires that each `@property` tag has a type value (within curly brackets).
11
+ Requires that all `@typedef` and `@namespace` tags have `@property`
12
+ tags when their type is a plain `object`, `Object`, or `PlainObject`.
11
13
 
12
- <a name="user-content-require-property-type-context-and-settings"></a>
13
- <a name="require-property-type-context-and-settings"></a>
14
+ Note that any other type, including a subtype of object such as
15
+ `object<string, string>`, will not be reported.
16
+
17
+ <a name="user-content-require-property-fixer"></a>
18
+ <a name="require-property-fixer"></a>
19
+ ## Fixer
20
+
21
+ The fixer for `require-property` will add an empty `@property`.
22
+
23
+ <a name="user-content-require-property-context-and-settings"></a>
24
+ <a name="require-property-context-and-settings"></a>
14
25
  ## Context and settings
15
26
 
16
27
  |||
17
28
  |---|---|
18
- |Context|everywhere|
19
- |Tags|`property`|
20
- |Aliases|`prop`|
29
+ |Context|Everywhere|
30
+ |Tags|`typedef`, `namespace`|
21
31
  |Recommended|true|
22
32
 
23
- <a name="user-content-require-property-type-failing-examples"></a>
24
- <a name="require-property-type-failing-examples"></a>
33
+ <a name="user-content-require-property-failing-examples"></a>
34
+ <a name="require-property-failing-examples"></a>
25
35
  ## Failing examples
26
36
 
27
37
  The following patterns are considered problems:
28
38
 
29
39
  ````js
30
40
  /**
31
- * @typedef {SomeType} SomeTypedef
32
- * @property foo
41
+ * @typedef {object} SomeTypedef
33
42
  */
34
- // Message: Missing JSDoc @property "foo" type.
43
+ // Message: Missing JSDoc @property.
44
+
45
+ class Test {
46
+ /**
47
+ * @typedef {object} SomeTypedef
48
+ */
49
+ quux () {}
50
+ }
51
+ // Message: Missing JSDoc @property.
35
52
 
36
53
  /**
37
- * @typedef {SomeType} SomeTypedef
38
- * @prop foo
54
+ * @typedef {PlainObject} SomeTypedef
39
55
  */
40
56
  // Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
41
- // Message: Missing JSDoc @prop "foo" type.
57
+ // Message: Missing JSDoc @prop.
42
58
 
43
59
  /**
44
- * @typedef {SomeType} SomeTypedef
45
- * @property foo
60
+ * @namespace {Object} SomeName
46
61
  */
47
- // Settings: {"jsdoc":{"tagNamePreference":{"property":false}}}
48
- // Message: Unexpected tag `@property`
62
+ // Message: Missing JSDoc @property.
49
63
  ````
50
64
 
51
65
 
52
66
 
53
- <a name="user-content-require-property-type-passing-examples"></a>
54
- <a name="require-property-type-passing-examples"></a>
67
+ <a name="user-content-require-property-passing-examples"></a>
68
+ <a name="require-property-passing-examples"></a>
55
69
  ## Passing examples
56
70
 
57
71
  The following patterns are not considered problems:
58
72
 
59
73
  ````js
60
74
  /**
61
- * @typedef {SomeType} SomeTypedef
75
+ *
76
+ */
77
+
78
+ /**
79
+ * @property
80
+ */
81
+
82
+ /**
83
+ * @typedef {Object} SomeTypedef
84
+ * @property {SomeType} propName Prop description
85
+ */
86
+
87
+ /**
88
+ * @typedef {object} SomeTypedef
89
+ * @prop {SomeType} propName Prop description
90
+ */
91
+ // Settings: {"jsdoc":{"tagNamePreference":{"property":"prop"}}}
92
+
93
+ /**
94
+ * @typedef {object} SomeTypedef
95
+ * @property
96
+ * // arbitrary property content
97
+ */
98
+
99
+ /**
100
+ * @typedef {object<string, string>} SomeTypedef
101
+ */
102
+
103
+ /**
104
+ * @typedef {string} SomeTypedef
62
105
  */
63
106
 
64
107
  /**
65
- * @typedef {SomeType} SomeTypedef
66
- * @property {number} foo
108
+ * @namespace {object} SomeName
109
+ * @property {SomeType} propName Prop description
67
110
  */
68
111
 
69
112
  /**
70
- * @namespace {SomeType} SomeName
71
- * @property {number} foo
113
+ * @namespace {object} SomeName
114
+ * @property
115
+ * // arbitrary property content
72
116
  */
73
117
 
74
118
  /**
75
- * @class
76
- * @property {number} foo
119
+ * @typedef {object} SomeTypedef
120
+ * @property someProp
121
+ * @property anotherProp This with a description
122
+ * @property {anotherType} yetAnotherProp This with a type and desc.
77
123
  */
124
+ function quux () {
125
+
126
+ }
78
127
  ````
79
128