加载中...

@alias


标记成员有一个别名

Syntax (语法)

@alias <aliasNamepath>

Overview (概述)

@alias标签标记成员有一个别名。如果该成员有不同的名称,JSDoc把所有引用作为这个成员。如果你在一个内部函数中定义一个类的时候,这个标签是非常有用的;在这种情况下,您可以使用@alias标签告诉JSDoc,这个类如何在您的应用程序中暴露出来。

虽然@alias标签听起来类似于@name标签,但是他们的行为非常不同。@name标签告诉JSDoc忽略与注释关联的所有代码。例如,当JSDoc处理下面的代码的时候,它忽略了bar的注释关联到一个foo函数:

  1. /**
  2. * Bar function.
  3. * @name bar
  4. */
  5. function foo() {}

@alias标记告诉JSDoc这是一个伪装,成员A实际上叫做成员B。例如,当JSDoc处理下面代码的时候,它承认foo是一个函数,然后在生产的文档中将foo改名为bar

  1. /**
  2. * Bar function.
  3. * @alias bar
  4. */
  5. function foo() {}

Examples(例子)

假设你正在使用类框架,希望当你定义一个类的时候,你只要传递一个构造函数。您可以使用@alias标签告诉JSDoc,这个类如何在您的应用程序中暴露出来。

在下面的例子中,在@alias标签告诉JSDoc处理匿名函数,就好像它是 “trackr.CookieManager”类的构造函数。在这个函数中,JSDoc将this关键字解释为trackr.CookieManager,因此,“value”方法的namepath(名称路径)为“trackr.CookieManager#value”。

例如,匿名的构造函数使用@alias:

  1. Klass('trackr.CookieManager',
  2. /**
  3. * @class
  4. * @alias trackr.CookieManager
  5. * @param {Object} kv
  6. */
  7. function(kv) {
  8. /** The value. */
  9. this.value = kv;
  10. }
  11. );

您也可以在一个立即调用的函数表达式(IIFE)中创建的成员中使用@alias标签。@alias标签告诉JSDoc,这些成员都暴露在IIFE作用域之外的。

例如,命名空间的静态方法使用@alias:

  1. /** @namespace */
  2. var Apple = {};
  3. (function(ns) {
  4. /**
  5. * @namespace
  6. * @alias Apple.Core
  7. */
  8. var core = {};
  9. /** Documented as Apple.Core.seed */
  10. core.seed = function() {};
  11. ns.Core = core;
  12. })(Apple);

对于那些对象字面量中定义的成员,可以使用@alias标签替代的@lends标记。

例如,对象常量使用@alias:

  1. // Documenting objectA with @alias
  2. var objectA = (function() {
  3. /**
  4. * Documented as objectA
  5. * @alias objectA
  6. * @namespace
  7. */
  8. var x = {
  9. /**
  10. * Documented as objectA.myProperty
  11. * @member
  12. */
  13. myProperty: 'foo'
  14. };
  15. return x;
  16. })();
  17. // Documenting objectB with @lends
  18. /**
  19. * Documented as objectB
  20. * @namespace
  21. */
  22. var objectB = (function() {
  23. /** @lends objectB */
  24. var x = {
  25. /**
  26. * Documented as objectB.myProperty
  27. * @member
  28. */
  29. myProperty: 'bar'
  30. };
  31. return x;
  32. })();

还没有评论.