【问题标题】:How to document this using jsdoc? [closed]如何使用 jsdoc 记录这一点? [关闭]
【发布时间】:2011-06-22 06:19:50
【问题描述】:

我想知道如何使用jsdoc 记录这种类型的课程:

var MyObject = (function(){

  var that = {};

  function privateFunction(){};

  that.publicFunction = function(){};

  that.publicField = "foo";

  return that;

})();

【问题讨论】:

  • 什么是that.publicFunction(){};?也许您需要在括号前添加=function
  • 为什么具有publicFunction 属性和publicField 属性的对象被视为一个类?也许最后不应该有{}
  • @Mike 感谢您注意到publicFunction 的东西
  • @Mike 实际上MyClass 更像是一个单例对象。不会将它与“new”关键字一起使用来创建实例

标签: javascript documentation jsdoc


【解决方案1】:

有很多东西命名为 JSDoc,但是使用 closure compiler 注释与 jsdoc toolkit 一起使用,您可以使用 @constructorMyClass 标记为构造函数。

/** @constructor */
var MyClass = ...;

然后你可以明确that 是名义类型MyClass,但显然名义类型不适用于instanceof

/** @type MyClass */
var that = /** @type {MyClass} */ {};

第一个@type 建立声明的类型,第二个是值的类型断言/转换。

通过这些方法,您可以使用@this 注释。

/** @this MyClass */
that.publicFunction = function () { ... };

【讨论】:

  • +1 这很有用。我确实使用了不好的术语...MyClass 不会成为一个类(不会与 new 关键字一起使用),我已将其更改为 MyObject
  • 有没有办法将构造函数放在命名空间下?我试过使用 memberof 但它似乎没有改变任何东西。
  • @porlune, my.namespace.MyClass = function ....
猜你喜欢
  • 2017-03-09
  • 2019-04-06
  • 2012-11-04
  • 2021-02-20
  • 2013-05-30
  • 1970-01-01
  • 2011-12-25
  • 2012-04-27
  • 2023-03-23
相关资源
最近更新 更多