感叹号在javascript@param和@return注释中表示什么?

感叹号在javascript@param和@return注释中表示什么?,javascript,comments,jsdoc,Javascript,Comments,Jsdoc,我试着遵循: /**一个做某事的类*/ 类SomeClass扩展了SomeBaseClass{ /** *对MyClass的实例进行操作并返回某些内容。 *@param{!MyClass}obj由于某种原因需要详细说明的对象 *跨多行的解释。 *@param{!OtherClass}显然是OtherClass *@return{boolean}是否发生了什么。 */ someMethod(obj,obviousOtherClass){…} /**@覆盖*/ 重写方法(参数){…} } /** *

我试着遵循:

/**一个做某事的类*/
类SomeClass扩展了SomeBaseClass{
/**
*对MyClass的实例进行操作并返回某些内容。
*@param{!MyClass}obj由于某种原因需要详细说明的对象
*跨多行的解释。
*@param{!OtherClass}显然是OtherClass
*@return{boolean}是否发生了什么。
*/
someMethod(obj,obviousOtherClass){…}
/**@覆盖*/
重写方法(参数){…}
}
/**
*演示顶级函数如何遵循相同的规则。这个
*生成一个数组。
*@param{TYPE}arg
*@return{!Array}
*@模板类型
*/
函数makeArray(arg){…}

我想知道感叹号在
@param{!MyClass}
@return{!Array}
中是什么意思,以及何时使用它。

根据上的表格,在“不可空类型”的行中,前面的感叹号表示“不可空”。

-“不可空类型”-前面的感叹号表示“非空”。@ASDFGerte谢谢。你能把它贴出来作为答复吗?
/** A class that does something. */
class SomeClass extends SomeBaseClass {
  /**
   * Operates on an instance of MyClass and returns something.
   * @param {!MyClass} obj An object that for some reason needs detailed
   *     explanation that spans multiple lines.
   * @param {!OtherClass} obviousOtherClass
   * @return {boolean} Whether something occurred.
   */
  someMethod(obj, obviousOtherClass) { ... }

  /** @override */
  overriddenMethod(param) { ... }
}

/**
 * Demonstrates how top-level functions follow the same rules.  This one
 * makes an array.
 * @param {TYPE} arg
 * @return {!Array<TYPE>}
 * @template TYPE
 */
function makeArray(arg) { ... }