Skip to content

Commit 39918c8

Browse files
authored
feat: make require-returns-description accept void functions (fixes #157)
feat: make require-returns-description accept void functions (fixes #157)
2 parents af5a9a9 + 8e9f35e commit 39918c8

File tree

3 files changed

+47
-0
lines changed

3 files changed

+47
-0
lines changed

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2145,6 +2145,20 @@ function quux () {
21452145
*/
21462146
function quux () {
21472147

2148+
}
2149+
2150+
/**
2151+
* @returns {undefined}
2152+
*/
2153+
function quux () {
2154+
2155+
}
2156+
2157+
/**
2158+
* @returns {void}
2159+
*/
2160+
function quux () {
2161+
21482162
}
21492163
````
21502164

@@ -2358,6 +2372,13 @@ function quux (bar) {
23582372
* @returns Array
23592373
*/
23602374
const quux = (bar) => bar.filter(({ corge }) => corge())
2375+
2376+
/**
2377+
* @inheritdoc
2378+
*/
2379+
function quux (foo) {
2380+
return "test"
2381+
}
23612382
````
23622383

23632384

src/rules/requireReturnsDescription.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ export default iterateJsdoc(({
1313
});
1414

1515
_.forEach(jsdocTags, (jsdocTag) => {
16+
const type = jsdocTag.type && jsdocTag.type.trim();
17+
18+
if (type === 'void' || type === 'undefined') {
19+
return;
20+
}
21+
1622
if (!jsdocTag.description) {
1723
report('Missing JSDoc @' + targetTagName + ' description.', null, jsdocTag);
1824
}

test/rules/assertions/requireReturnsDescription.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,26 @@ export default {
5858
*/
5959
function quux () {
6060
61+
}
62+
`
63+
},
64+
{
65+
code: `
66+
/**
67+
* @returns {undefined}
68+
*/
69+
function quux () {
70+
71+
}
72+
`
73+
},
74+
{
75+
code: `
76+
/**
77+
* @returns {void}
78+
*/
79+
function quux () {
80+
6181
}
6282
`
6383
}

0 commit comments

Comments
 (0)