使用//注释格式来实现Intellisense

5
TL;DR:VSCode的“编辑器悬停”框中JS注释追加行为的来源是什么?是否可以改用//注释?
在编辑.js/.ts文件时,当鼠标悬停在任何变量引用上时,VSCode会显示一个框(通过Editor > Hover设置进行控制)。
/** I'm a comment */
const someVariable = 'Me';

console.log(someVariable);

当鼠标悬停在最后一行的someVariable上时,会产生以下结果:

Screenshot of a variable showing a comment in the hover.

那个框的注释部分只有在以两个星号开始的多行注释中出现,变量、对象属性或函数上方一行或多行,并与Intellisense使用JSDoc的方式相同。非常有用,但是一些团队成员更喜欢在声明变量的短行末尾放置//注释。是否有办法让VSCode考虑这些行末注释的变量/属性,还是我必须将每个相关注释转换为/**才能像这样看到它?

1
似乎使用块注释 /** */ 作为文档是标准做法。请参阅 https://jsdoc.app/about-getting-started.html。 - Umair Khan
为什么要这样做?我认为这是不可能的。'//'已经用于注释一行,将其用于其他目的可能会引起麻烦。最好保持标准。 - Amadou Beye
1
@VLAZ 变量仅仅是最容易演示的;最有价值的用途是对象键和 TypeScript 接口,经常被导入到其他文件中。其中大部分都没有注释,但总会有一些键的最小描述是像“第二个导体的最新线-中性电压,以伏特的十分之一为单位”,或者状态机枚举需要准确描述一个特定数字对应的外部设备情况/行为。 - MBer
2个回答

4
这个两分钟的视频对我来说非常有帮助,让我看到了使用jsDoc格式的优势。与在vscode中使用Ctrl K Ctrl C不同,我将开始输入/**,它会自动补全注释,类似于在c#中键入///以自动生成注释模板等。以下是视频链接:JavaScript和TypeScript中快速编写JSDoc注释

1
同意,这并不难 - 这个问题主要是对编码文化的一种变通。 - MBer

2
这是我使用的VSCode快捷键绑定:
{
  {
    "key": "shift+cmd+/",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
      "snippet": "/** ${TM_SELECTED_TEXT/\\s*\\/\\/\\s*//}$1 */"
    }
  },
}

我也使用prettier-plugin-jsdoc来自动换行多行注释。


为什么要这样做?我认为这是不可能的。'//'已经用于注释一行,将其用于其他目的可能会引起麻烦。最好保持标准。

这很愚蠢。常规注释用于记录和解释代码。JSDoc只是一个更明确定义的注释格式,以包含更丰富的细节。它们都有同样的目的。

但无论你对它们之间的区别有何感觉,将“我是注释”添加到编辑器中的弹出窗口没有任何副作用。它并不像其他需要被排除的东西那样占据空间。IDE和扩展应该支持此功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接