Microsoft/TypeScript

`getTextOfJSDocComment` introduces a space in JSDoc comments

開放

#59,679 建立於 2024年8月19日

 (1 則留言) (0 個反應) (0 位負責人)TypeScript (13,395 個分叉)batch import
BugDomain: JSDocHelp Wanted

倉庫指標

星標
 (108,860 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

🔎 Search Terms

getJSDocTags getTextOfJSDocComment

🕗 Version & Regression Information

Tested on 5.5.4, also existed on previous versions.

⏯ Playground Link

https://stackblitz.com/edit/gettextofjsdoccomment-dbm6rj?file=main.ts,package-lock.json

💻 Code

import ts from 'typescript';

const filename = 'example.ts';
const code = `
/** 
 * 
 * @see {@link entry()}
 */
class Foo  {};
`;

const sourceFile = ts.createSourceFile(
  filename,
  code,
  ts.ScriptTarget.ESNext,
  true
);

const visitNode = (node: ts.Node) => {
  ts.forEachChild(node, visitNode);
  const tags = ts.getJSDocTags(node);
  if (tags.length) {
    tags.forEach((tag) => {
      const comment = tag.comment!.slice(1) as any;

      console.log(
        tag.tagName.getText(),
        '> ',
        ts.getTextOfJSDocComment(comment)
      );

      //console.log(comment);
    });
  }
};

ts.forEachChild(sourceFile, visitNode);

🙁 Actual behavior

getTextOfJSDocComment returns {@link entry ()}. Notice the space inbetween.

🙂 Expected behavior

getTextOfJSDocComment returns {@link entry()}. Notice the space inbetween.

Additional information about the issue

This is a variation of #58584.

Also noticed it happened with {@link core/inject} becoming {@link core /inject}

貢獻者指南