File tree 3 files changed +54
-2
lines changed
3 files changed +54
-2
lines changed Original file line number Diff line number Diff line change @@ -5576,6 +5576,18 @@ function quux (foo) {
5576
5576
}
5577
5577
// Settings: {"jsdoc":{"mode":"typescript"}}
5578
5578
// Message: Invalid JSDoc @param "foo" type "object"; prefer: "Object<>".
5579
+
5580
+ /**
5581
+ *
5582
+ * @param {Object} param
5583
+ * @return {Object | String}
5584
+ */
5585
+ function abc(param) {
5586
+ if (param.a)
5587
+ return {};
5588
+ return 'abc';
5589
+ }
5590
+ // Message: Invalid JSDoc @param "param" type "Object"; prefer: "object".
5579
5591
````
5580
5592
5581
5593
The following patterns are not considered problems:
Original file line number Diff line number Diff line change @@ -206,8 +206,8 @@ export default iterateJsdoc(({
206
206
// `unifyParentAndChildTypeChecks`) and we don't want
207
207
// `object<>` given TypeScript issue https://github.com/microsoft/TypeScript/issues/20555
208
208
parentNode ?. elements . length && (
209
- parentNode ?. left . type === 'JsdocTypeName' &&
210
- parentNode ?. left . value === 'Object'
209
+ parentNode ?. left ? .type === 'JsdocTypeName' &&
210
+ parentNode ?. left ? .value === 'Object'
211
211
)
212
212
)
213
213
) {
Original file line number Diff line number Diff line change @@ -2356,6 +2356,46 @@ export default {
2356
2356
} ,
2357
2357
} ,
2358
2358
} ,
2359
+ {
2360
+ code : `
2361
+ /**
2362
+ *
2363
+ * @param {Object} param
2364
+ * @return {Object | String}
2365
+ */
2366
+ function abc(param) {
2367
+ if (param.a)
2368
+ return {};
2369
+ return 'abc';
2370
+ }
2371
+ ` ,
2372
+ errors : [
2373
+ {
2374
+ line : 4 ,
2375
+ message : 'Invalid JSDoc @param "param" type "Object"; prefer: "object".' ,
2376
+ } ,
2377
+ {
2378
+ line : 5 ,
2379
+ message : 'Invalid JSDoc @return type "Object"; prefer: "object".' ,
2380
+ } ,
2381
+ {
2382
+ line : 5 ,
2383
+ message : 'Invalid JSDoc @return type "String"; prefer: "string".' ,
2384
+ } ,
2385
+ ] ,
2386
+ output : `
2387
+ /**
2388
+ *
2389
+ * @param {object} param
2390
+ * @return {Object | String}
2391
+ */
2392
+ function abc(param) {
2393
+ if (param.a)
2394
+ return {};
2395
+ return 'abc';
2396
+ }
2397
+ ` ,
2398
+ } ,
2359
2399
] ,
2360
2400
valid : [
2361
2401
{
You can’t perform that action at this time.
0 commit comments