这是代码:
/**
* @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} 未定义?

根据 YUIdoc 的文档(在本例中似乎相当于 jsdoc),有一个 @throws 标签来记录可能抛出的错误。
指定方法抛出的错误。@throws 标签具有结构@throws {type} 描述。{type} 是可选的。
就我而言,函数中有多个检查可能会引发错误,因此我想用 @throws 列出它们。但您不能拥有多个 @throws 标签。那么如何将可能引发的错误列表放入此标记中呢?
我正在使用 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) 在我的一个 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 注释会是什么样子?因为这应该定义我必须在大括号内输入参数,并且我还必须使用键。
如果有任何其他方式可以使用命名参数和/或可选参数,那么也将不胜感激。
我想创建一个 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) 我不知道标题是否正确表达了我想要做的事情。但我有以下功能:
/**
* @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,我将如何描述第二个参数?
我试图让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 ×7
javascript ×2
typescript ×2
function ×1
jsdoc3 ×1
json ×1
node.js ×1
webstorm ×1
yuidoc ×1