Skip to content

Commit 898f3e2

Browse files
fix: fixed extract combined comment (#198)
1 parent 5d39022 commit 898f3e2

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

typescript/type-converter.js

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)