@@ -87,6 +87,24 @@ const validateParameterNames = (
87
87
88
88
return true ;
89
89
}
90
+ if (
91
+ typeof functionParameterName === 'object' &&
92
+ 'name' in functionParameterName &&
93
+ Array . isArray ( functionParameterName . name )
94
+ ) {
95
+ const actualName = tag . name . trim ( ) ;
96
+ const expectedName = functionParameterName . name [ index ] ;
97
+ if ( actualName === expectedName ) {
98
+ thisOffset -- ;
99
+ return false ;
100
+ }
101
+ report (
102
+ `Expected @${ targetTagName } name to be "${ expectedName } ". Got "${ actualName } ".` ,
103
+ null ,
104
+ tag ,
105
+ ) ;
106
+ return true ;
107
+ }
90
108
91
109
if ( Array . isArray ( functionParameterName ) ) {
92
110
if ( ! checkDestructured ) {
@@ -236,6 +254,7 @@ const validateParameterNames = (
236
254
] ) => {
237
255
return name . trim ( ) ;
238
256
} ) ;
257
+
239
258
const expectedNames = functionParameterNames . map ( ( item , idx ) => {
240
259
if ( /**
241
260
* @type {[string|undefined, (import('../jsdocUtils.js').FlattendRootInfo & {
@@ -260,7 +279,15 @@ const validateParameterNames = (
260
279
}
261
280
262
281
report (
263
- `Expected @${ targetTagName } names to be "${ expectedNames . join ( ', ' ) } ". Got "${ actualNames . join ( ', ' ) } ".` ,
282
+ `Expected @${ targetTagName } names to be "${
283
+ expectedNames . map ( ( expectedName ) => {
284
+ return typeof expectedName === 'object' &&
285
+ 'name' in expectedName &&
286
+ expectedName . restElement
287
+ ? '...' + expectedName . name
288
+ : expectedName ;
289
+ } ) . join ( ', ' )
290
+ } ". Got "${ actualNames . join ( ', ' ) } ".`,
264
291
null ,
265
292
tag ,
266
293
) ;
@@ -352,6 +379,7 @@ export default iterateJsdoc(({
352
379
}
353
380
354
381
const functionParameterNames = utils . getFunctionParameterNames ( useDefaultObjectProperties ) ;
382
+
355
383
const targetTagName = /** @type {string } */ ( utils . getPreferredTagName ( {
356
384
tagName : 'param' ,
357
385
} ) ) ;
0 commit comments