@@ -115,7 +115,7 @@ const convertParams = (jsDoc = '', node, src) => {
115
115
if ( ! parameters ) { return }
116
116
parameters . forEach ( parameter => {
117
117
let name = getName ( parameter , src )
118
- let comment = parameter . jsDoc && parameter . jsDoc [ 0 ] && parameter . jsDoc [ 0 ] . comment || ''
118
+ let comment = getCommentAsString ( parameter , src )
119
119
if ( parameter . questionToken ) {
120
120
name = [ '[' , name , ']' ] . join ( '' )
121
121
}
@@ -161,7 +161,7 @@ let convertMembers = (jsDoc = '', type, src, parentName = null) => {
161
161
// Handling {property1: "value"}
162
162
( type . members || [ ] ) . filter ( m => ts . isTypeElement ( m ) ) . forEach ( member => {
163
163
let name = getName ( member , src )
164
- let comment = member . jsDoc && member . jsDoc [ 0 ] && member . jsDoc [ 0 ] . comment || ''
164
+ let comment = getCommentAsString ( member , src )
165
165
const members = member . type . members || [ ]
166
166
let typeName = members . length ? 'object' : getTypeName ( member . type , src )
167
167
if ( parentName ) {
@@ -176,6 +176,25 @@ let convertMembers = (jsDoc = '', type, src, parentName = null) => {
176
176
return jsDoc
177
177
}
178
178
179
+ /**
180
+ * Extract comment from member jsDoc as string
181
+ * @param member
182
+ * @param {string } src
183
+ * @returns {string }
184
+ */
185
+ function getCommentAsString ( member , src ) {
186
+ if ( member . jsDoc && member . jsDoc [ 0 ] && member . jsDoc [ 0 ] . comment ) {
187
+ const comment = member . jsDoc [ 0 ] . comment ;
188
+ if ( Array . isArray ( comment ) ) {
189
+ return comment
190
+ . map ( ( c ) => c . text . length ? c . text : src . substring ( c . pos , c . end ) )
191
+ . join ( '' ) ;
192
+ }
193
+ return member . jsDoc [ 0 ] . comment ;
194
+ }
195
+ return '' ;
196
+ }
197
+
179
198
/**
180
199
* Main function which converts types
181
200
*
0 commit comments