标签: jsdoc

Intellij 说“未解析的变量或类型”,但它是使用 @name 定义的

这是代码:

/**
 * @name Me
 * @property {String} name
 * @property {Number} minVer
 * @property {Number} maxVer
 */

/** @type {Me}  the moshe*/
var y;
Run Code Online (Sandbox Code Playgroud)

为什么 IntelliJ 说 {Me} 未定义?

截屏

intellij-idea jsdoc webstorm jsdoc3

1
推荐指数
1
解决办法
2927
查看次数

如何在 YUIdoc / jsdoc 中使用 @throws 记录多个错误?

根据 YUIdoc 的文档(在本例中似乎相当于 jsdoc),有一个 @throws 标签来记录可能抛出的错误。

指定方法抛出的错误。@throws 标签具有结构@throws {type} 描述。{type} 是可选的。

就我而言,函数中有多个检查可能会引发错误,因此我想用 @throws 列出它们。但您不能拥有多个 @throws 标签。那么如何将可能引发的错误列表放入此标记中呢?

jsdoc yuidoc

1
推荐指数
1
解决办法
4983
查看次数

无法输入(通过 JSDoc)样式化的组件属性

我正在使用 Visual Studio Code 的类型检查 Javascript功能。对于那些不熟悉的人来说,这可以实现推断类型,因此您可以享受在 VS Code 中键入的许多好处,而无需编写类型。

不幸的是,样式化组件库中基于模板标签的组件存在问题。如果我有一个像这样的组件:

const ProductImage = styled.div`
  background-image: url("${props => props.imagePath}");
`;
Run Code Online (Sandbox Code Playgroud)

imagePathVS Code 在(但不是)下方添加了一条波浪线警告线props.,因为 Typescript 无法推断 props 参数的类型。

据我了解, Typescript 还可以从 JSDoc 获取类型,所以我尝试添加:

/**
 * @param {String} [props.imagePath]
 * @param {String} [props.alignRight]
 */
 const ProductImage = styled.div`
  background-image: url("${props => props.imagePath}");
  float: ${props => (props.alignRight ? `left` : `right`)}};
`;
Run Code Online (Sandbox Code Playgroud)

...但这不起作用。

我没有tsconfig.js,但为了启用 JSDoc 键入,我尝试将以下内容添加到我的jsconfig.js

// Generate d.ts files
"declaration": true,
// …
Run Code Online (Sandbox Code Playgroud)

jsdoc typescript styled-components

1
推荐指数
1
解决办法
882
查看次数

如何使用 JSDoc 命名参数

在我的一个 JavaScript 文件中,我必须引入一些可选参数,因此我遵循了指南并得到了以下方法声明:

function my_func({
    opt1,
    opt2 = 250,
    opt3 = "A message.",
    opt4 = null
}) {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

我可以这样称呼它:

my_func({
        opt1: "boom",
        opt4: document.getElementById("some-element"),
        opt3: "A different message.",
        opt2: 200
    });
Run Code Online (Sandbox Code Playgroud)

我什至可以删除一些参数并将它们按任何顺序排列。
现在,我想使用 JSDoc 对其进行记录,但我很困惑我的 JSDoc 注释会是什么样子?因为这应该定义我必须在大括号内输入参数,并且我还必须使用键。

如果有任何其他方式可以使用命名参数和/或可选参数,那么也将不胜感激。

javascript json function jsdoc

1
推荐指数
1
解决办法
1443
查看次数

创建一个 TypeScript 库并在 Node.js 中使用 ES6 和 TypeScript

我想创建一个 TypeScript 库作为可以在 Node.js 中使用的私有 npm 包(包括6.x)使用 ES6@types支持和 TypeScript。

该库的目标是扩展Request类型express并提供额外的属性。

我创建了一个新的 Node.js 项目并添加了这个tsconfig.json

{
  "compilerOptions": {
    "target": "es2015",
    "module": "commonjs",
    "sourceMap": true,
    "declaration": true,
    "outDir": "./dist",
    "strict": true,
    "types": ["mocha"]
  }
}
Run Code Online (Sandbox Code Playgroud)

这些是 的相关部分package.json

{
  "name": "@myscope/my-lib",
  "main": "dist",
  "scripts": {
    "build": "rm -rf ./dist && ./node_modules/.bin/tsc",
    "test": "./node_modules/.bin/mocha test"
  },
  "private": true,
  "dependencies": {
    "joi": "11.4.0"
  },
  "devDependencies":  {
    "mocha": "^5.2.0",
    "express": "^4.16.4",
    "@types/express": "^4.16.1",
    "@types/joi": "^14.3.0", …
Run Code Online (Sandbox Code Playgroud)

node.js jsdoc typescript

0
推荐指数
1
解决办法
3811
查看次数

如何使用 JSDocs 描述具有默认值的可选对象参数

我不知道标题是否正确表达了我想要做的事情。但我有以下功能:

/**
 * @param {any} param1
 * How to describe the second parameter??
 * @returns {Object}
 */
function doSomething (param1, { property1 = null, property2 = null }){
  // do stuff
  return something
}
Run Code Online (Sandbox Code Playgroud)

正如评论中所质疑的,使用 JSDocs,我将如何描述第二个参数?

javascript jsdoc

0
推荐指数
1
解决办法
1482
查看次数

如何让 jsdoc 真正输出文档?

我试图让jsdoc(版本 3.6.7,使用节点 16)将我记录的 js 代码转换为实际文档,但无论我做什么,它都只会生成一个out带有主要是空行的 index.html 的目录,而不是文档。我已经在问题跟踪器上询问过这个问题(在我搜索了文档和网络以获取关于让 jsdoc 生成空文件可能做错了什么的信息之后,但我一生都找不到任何有用的东西)解决了这个问题),但由于已经过去几天了,在这里提问也很有用,这样任一地方的答案都可以交叉发布。

运行该jsdoc命令不会标记任何输入错误,并以正常的零退出代码完成,但不会生成任何有用的内容,因此希望这里有人遇到过他之前的情况,并且可以解释除了以下代码之外还需要什么才能真正获得 jsdoc生成文档。

根据 jsdoc,代码示例没有错误,但也没有生成任何文档:

import { Errors } from "../errors.js";
import { Models } from "./models.js";

/**
 * Several paragraphs of text that explain this class
 *
 * @class
 * @namespace model
 */
export class Model {
  /**
   * @ignore
   */
  static ALLOW_INCOMPLETE = Symbol();

  /**
   * Also several paragraphs explaining the use of this function.
   *
   * @static
   * @param {*} data …
Run Code Online (Sandbox Code Playgroud)

jsdoc

-6
推荐指数
1
解决办法
886
查看次数