Microsoft/TypeScript

`getTextOfJSDocComment` introduces a space in JSDoc comments

Open

#59,679 创建于 2024年8月19日

在 GitHub 查看
 (1 评论) (0 反应) (0 负责人)TypeScript (6,726 fork)batch import
BugDomain: JSDocHelp Wanted

仓库指标

Star
 (48,455 star)
PR 合并指标
 (平均合并 6天 17小时) (30 天内合并 9 个 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}

贡献者指南