Skip to content

Commit 0b3cbee

Browse files
committed
docs(reject-function-type): add more examples; closes #1568
Co-credit @TheJaredWilcurt
1 parent 335450a commit 0b3cbee

File tree

2 files changed

+59
-8
lines changed

2 files changed

+59
-8
lines changed

docs/rules/reject-function-type.md

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,17 @@ The following patterns are considered problems:
2222

2323
````ts
2424
/**
25-
* @param {Function} abc
25+
* @param {Function} fooBar
2626
*/
27-
function quux () {}
27+
function quux (fooBar) {
28+
console.log(fooBar(3));
29+
}
2830
// Message: Prefer a more specific type to `Function`
2931

3032
/**
3133
* @param {string|Array<Function>} abc
3234
*/
33-
function quux () {}
35+
function buzz (abc) {}
3436
// Message: Prefer a more specific type to `Function`
3537
````
3638

@@ -46,6 +48,28 @@ The following patterns are not considered problems:
4648
/**
4749
* @param {SomeType} abc
4850
*/
49-
function quux () {}
51+
function quux (abc) {}
52+
53+
// To avoid referencing a generic Function, define a callback
54+
// with its inputs/outputs and a name.
55+
/**
56+
* @callback FOOBAR
57+
* @param {number} baz
58+
* @return {number}
59+
*/
60+
61+
62+
// Then reference the callback name as the type.
63+
/**
64+
* @param {FOOBAR} fooBar
65+
*/
66+
function quux (fooBar) {
67+
console.log(fooBar(3));
68+
}
69+
70+
/**
71+
* @param {string|Array<FOOBAR>} abc
72+
*/
73+
function buzz (abc) {}
5074
````
5175

test/rules/assertions/rejectFunctionType.js

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ export default {
33
{
44
code: `
55
/**
6-
* @param {Function} abc
6+
* @param {Function} fooBar
77
*/
8-
function quux () {}
8+
function quux (fooBar) {
9+
console.log(fooBar(3));
10+
}
911
`,
1012
errors: [
1113
{
@@ -19,7 +21,7 @@ export default {
1921
/**
2022
* @param {string|Array<Function>} abc
2123
*/
22-
function quux () {}
24+
function buzz (abc) {}
2325
`,
2426
errors: [
2527
{
@@ -35,7 +37,32 @@ export default {
3537
/**
3638
* @param {SomeType} abc
3739
*/
38-
function quux () {}
40+
function quux (abc) {}
41+
`,
42+
},
43+
{
44+
code: `
45+
// To avoid referencing a generic Function, define a callback
46+
// with its inputs/outputs and a name.
47+
/**
48+
* @callback FOOBAR
49+
* @param {number} baz
50+
* @return {number}
51+
*/
52+
53+
54+
// Then reference the callback name as the type.
55+
/**
56+
* @param {FOOBAR} fooBar
57+
*/
58+
function quux (fooBar) {
59+
console.log(fooBar(3));
60+
}
61+
62+
/**
63+
* @param {string|Array<FOOBAR>} abc
64+
*/
65+
function buzz (abc) {}
3966
`,
4067
},
4168
],

0 commit comments

Comments
 (0)