Skip to content

Commit 66dd12e

Browse files
authored
fix(58259): getTextOfJSDocComment is stripping # from JSDoc comment (#58338)
1 parent 62c41f8 commit 66dd12e

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

src/compiler/utilities.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2123,7 +2123,7 @@ export function entityNameToString(name: EntityNameOrEntityNameExpression | JSDo
21232123
return Debug.assertNever(name.name);
21242124
}
21252125
case SyntaxKind.JSDocMemberName:
2126-
return entityNameToString(name.left) + entityNameToString(name.right);
2126+
return entityNameToString(name.left) + "#" + entityNameToString(name.right);
21272127
case SyntaxKind.JsxNamespacedName:
21282128
return entityNameToString(name.namespace) + ":" + entityNameToString(name.name);
21292129
default:

src/testRunner/unittests/jsDocParsing.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,4 +543,21 @@ oh.no
543543
assert.equal((doc?.jsDoc.tags?.[0] as ts.JSDocTemplateTag).typeParameters.length, 0);
544544
});
545545
});
546+
describe("getTextOfJSDocComment", () => {
547+
it("should preserve hash in string representation of JsDocMemberName", () => {
548+
const sourceText = `
549+
/**
550+
*
551+
* @see {@link foo#bar label}
552+
*/
553+
class Foo {};
554+
`;
555+
556+
const root = ts.createSourceFile("foo.ts", sourceText, ts.ScriptTarget.ES5, /*setParentNodes*/ true);
557+
const [classDecl] = root.statements;
558+
const [seeTag] = ts.getJSDocTags(classDecl);
559+
560+
assert.equal(ts.getTextOfJSDocComment(seeTag.comment), "{@link foo#bar label}");
561+
});
562+
});
546563
});

0 commit comments

Comments
 (0)