- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在使用 JSDoc 3 编译以下代码以生成文档时出现错误。如果我删除第一行“user strict”;,则它可以工作。这是 JSDoc 中的错误,还是我遗漏了什么?
代码:
"use strict";
var BaseClass = require("./BaseClass").BaseClass;
/**
* @class
* @extends BaseClass
*/
var MyClass = BaseClass.extend(
/** @lends MyClass.prototype */
{
/**
* Initializer.
* @public
*/
initialize:function () {
this._id = -1;
},
/**
* Property id
* @public
* @property {number} id
*/
get id() {
return this._id;
},
set id(id) {
this._id = id;
}
});
exports.MyClass = MyClass;
这是我看到的错误:
./jsdoc3/jsdoc -c ./conf.json
js: "/xxx/src/main.js", line 31: Property "id" already defined in this object literal.
js: }
js: ....^
org.mozilla.javascript.EvaluatorException: Compilation produced 1 syntax errors. (/xxx/src/main.js#1)
at org.mozilla.javascript.tools.ToolErrorReporter.runtimeError(ToolErrorReporter.java:144)
at org.mozilla.javascript.Parser.parse(Parser.java:596)
at org.mozilla.javascript.Parser.parse(Parser.java:505)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:161)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:247)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:86)
at org.mozilla.javascript.gen.file__Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_node_modules_jsdoc_src_parser_js_18._c_anonymous_24(Unknown Source)
at org.mozilla.javascript.gen.file__Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_node_modules_jsdoc_src_parser_js_18.call(Unknown Source)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
at org.mozilla.javascript.gen.file__Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_node_modules_jsdoc_src_parser_js_18._c_anonymous_2(Unknown Source)
at org.mozilla.javascript.gen.file__Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_node_modules_jsdoc_src_parser_js_18.call(Unknown Source)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
at org.mozilla.javascript.gen._Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_jsdoc_js_1._c_main_3(Unknown Source)
at org.mozilla.javascript.gen._Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_jsdoc_js_1.call(Unknown Source)
at org.mozilla.javascript.optimizer.OptRuntime.callName0(OptRuntime.java:108)
at org.mozilla.javascript.gen._Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_jsdoc_js_1._c_script_0(Unknown Source)
at org.mozilla.javascript.gen._Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_jsdoc_js_1.call(Unknown Source)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:426)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3178)
at org.mozilla.javascript.gen._Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_jsdoc_js_1.call(Unknown Source)
at org.mozilla.javascript.gen._Users_ytakeda_Projects_Supernova_snova_docs_submodules_jsdoc3_jsdoc_js_1.exec(Unknown Source)
at org.mozilla.javascript.tools.shell.Main.evaluateScript(Main.java:654)
at org.mozilla.javascript.tools.shell.Main.processFileSecure(Main.java:552)
at org.mozilla.javascript.tools.shell.Main.processFile(Main.java:507)
at org.mozilla.javascript.tools.shell.Main.processSource(Main.java:499)
at org.mozilla.javascript.tools.shell.Main.processFiles(Main.java:215)
at org.mozilla.javascript.tools.shell.Main$IProxy.run(Main.java:134)
at org.mozilla.javascript.Context.call(Context.java:521)
at org.mozilla.javascript.ContextFactory.call(ContextFactory.java:535)
at org.mozilla.javascript.tools.shell.Main.exec(Main.java:198)
at org.mozilla.javascript.tools.shell.Main.main(Main.java:174)
make: *** [docs] Error 1
最佳答案
如上所述,此语法在 JavaScript 的严格模式下是合法的。我怀疑这是 JSDoc 使用的 Mozilla Rhino 版本中的解析器错误。
作为解决方法,您可以在 JSDoc 解析文件之前使用以下插件注释掉“use strict”声明:
exports.handlers = {
beforeParse: function(e) {
e.source = e.source.replace(/['"]use strict['"]/g, "//'use strict'");
}
};
关于javascript - JSDoc 3 在严格模式下解析同名错误 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861160/
短版: 如果我想从头开始开发一个全新的 jsDoc 模板,我需要阅读哪些内容才能了解 jsDoc 的功能、我的模板必须提供什么接口(interface)以及我可以使用哪些数据? 加长版: 我已经使用
给定一个将回调函数作为参数的 Javascript 函数: var myFunction = function(onSuccess, onFailure) {...} 我如何记录 onSuccess的
我一直看到以下格式的 JSDoc(和之前的 JavaDoc): /** * This is some JSDoc ... * ... and some more */ function
假设我有一个接受一个参数的函数: /** * @summary Some function. * * @since 1.0.0 * * etc. */ function func( a )
所有官方 JSDoc 示例都有简单的文档字符串,如下所示: /** * @param {string} author - The author of the book. */ 问题是,在现实生活中
jsDoc 似乎支持大部分 MD 语法,但是当涉及到突出显示单个保留字或文本时,我找不到可用的标签。 在 MD 语法中,我可以使用 `word`,它会设置灰色背景和不同的字体,这样您就可以清楚地看到它
我正在提供带有 JSDoc 注释的代码示例,其中也包含 JSDoc 注释,如何在不破坏外部注释的情况下转义嵌套的 JSDoc 注释? 我使用的是版本 3.3.0-beta3 例子: /** *
我正在使用 documentation package ,但无法弄清楚如何将它记录为类属性(不是通过 getter 和 setter 定义的)。 下面只为 SomeClass 生成类文档,但省略了 s
请向我解释描述此模块的最佳方式: /** * Common util methods * @module Utils */ var Utils = (/** @lends module:Util
我一直很难让 @borrows 标记在 JSDoc 中工作。我一直在尝试从一个函数中获取文档,并将其作为第二个函数的文档。但我似乎连一个简单的例子都做不到! /** * This is the de
我想设置一个 Grunt 任务来运行 JSDoc。我正在使用 grunt-jsdoc JSDoc npm 页面推荐的。它工作正常,但我不能使用我创建的 jsdoc.json 文件。 { "tags
我仍在学习 js 并试用 Webstorm IDE,它看起来不错(包括跳转到 var/函数声明)。 我可以看到如何让 jsdoc 评论出现的模板,但我没有这方面的经验,正在寻找一个例子来说明如何在评论
我仍在学习 js 并试用 Webstorm IDE,它看起来不错(包括跳转到 var/函数声明)。 我可以看到如何让 jsdoc 评论出现的模板,但我没有这方面的经验,正在寻找一个例子来说明如何在评论
我有两种类型的模块: Require.js 主文件: require.config({ baseUrl: "/another/path", paths: {
是否有任何自然方式或特殊标签将参数类型作为链接? /** * My js app * @module app */ /** * Namespace for MYAPP classes and func
我有一个包含大量选项的函数: /** * Show dialog in a blocking manner. * * @param {object} opts * @param {string
我只需要在包含 .js 文件的 ai 整个目录上运行 jsdoc,我通过发出命令 jsdoc abc.js 对 ubuntu 终端中的单个文件执行此操作,但我需要的是一次将此命令应用于目录中的所有文件
假设我有两个功能,其中一个扩展了另一个。 /** * @abstract * @param {Object} settings * @param {Number} settings.x * @para
/** * @param {String} foo * @param {Number} bar */ 或者 /** * @param {string} foo * @param {numbe
导致JsDoc忽略源链接的最简单方法是什么?我必须定义自己的模板吗? 最佳答案 如果使用默认模板,则使用templates.default.outputSourceFiles设置为false的配置文件
我是一名优秀的程序员,十分优秀!