@@ -115,7 +115,7 @@ const convertParams = (jsDoc = '', node, src) => {
115115 if ( ! parameters ) { return }
116116 parameters . forEach ( parameter => {
117117 let name = getName ( parameter , src )
118- let comment = parameter . jsDoc && parameter . jsDoc [ 0 ] && parameter . jsDoc [ 0 ] . comment || ''
118+ let comment = getCommentAsString ( parameter , src )
119119 if ( parameter . questionToken ) {
120120 name = [ '[' , name , ']' ] . join ( '' )
121121 }
@@ -161,7 +161,7 @@ let convertMembers = (jsDoc = '', type, src, parentName = null) => {
161161 // Handling {property1: "value"}
162162 ( type . members || [ ] ) . filter ( m => ts . isTypeElement ( m ) ) . forEach ( member => {
163163 let name = getName ( member , src )
164- let comment = member . jsDoc && member . jsDoc [ 0 ] && member . jsDoc [ 0 ] . comment || ''
164+ let comment = getCommentAsString ( member , src )
165165 const members = member . type . members || [ ]
166166 let typeName = members . length ? 'object' : getTypeName ( member . type , src )
167167 if ( parentName ) {
@@ -176,6 +176,25 @@ let convertMembers = (jsDoc = '', type, src, parentName = null) => {
176176 return jsDoc
177177}
178178
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+
179198/**
180199 * Main function which converts types
181200 *
0 commit comments