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

Tax*_*ool 5 javascript comments jsdoc

我正在尝试遵循这个准则

/** 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) { ... }
Run Code Online (Sandbox Code Playgroud)

我想知道感叹号的含义是什么@param {!MyClass}以及@return {!Array<TYPE>}何时使用它。

ASD*_*rte 5

根据Use JSDoc: @type上的表格,在“Non-nullable type”行中,前面的感叹号表示“non-null”。