jsdoc自动使用描述字段

jsdoc to auto use description field

我有一个这样的对象:

resource.foo= {
  name: "Foo",
  desc: "Some description"
}

我发现自己在写:

/**
 * Some description
 */
resource.foo= {
  name: "Foo",
  desc: "Some description"
}

不用复制粘贴就可以自动获取 desc 字段吗?

对我来说听起来不可能。但是,如果您只需要在 VS Code 的提示中显示描述,这是我能想到的最接近的解决方案:

const resource = {}

const desc = 'Some description'

resource.foo= {
  name: "Foo",
  /** @type {desc} */ desc,
}

先声明desc为常量,即可引用常量类型。现在您应该能够在 VS Code 的类型提示中看到描述:

当您尝试键入 resource.foo.desc 时,您还会看到说明:

这是另一种方法,使用键绑定。使用我写的扩展 Find and Transform,将其放入您的 keybindings.json:

{
  "key": "alt+d",                   // whatever keybinding you want
  "command": "findInCurrentFile",
  "args": {
    "preCommands": [
      "editor.action.jumpToBracket",
      "editor.action.selectToBracket",
      "editor.action.clipboardCopyAction",
      "editor.action.insertLineBefore"
    ],
    "replace": [
      "$${",
        "return `/**\n * ` + ${CLIPBOARD}.desc  + `\n */`",
      "}$$",
    ],
    "postCommands": "cancelSelection"
  }
}

你可以运行 javascript替换,你的很简单:

${CLIPBOARD}.desc 因为剪贴板将成为对象。

注意光标必须位于对象内部的某个位置 - 即 brackets/braces.