简单的问题,如何记录“混合类型”?我知道我可以列出所有可能的类型,例如{null|undefined|String|Number|Object}
,但最终可能会错过一些类型并变得过于复杂。我尝试使用Mixed关键字,但它在许多IDE(如WebStorm)中弹出错误信息。
简单的问题,如何记录“混合类型”?我知道我可以列出所有可能的类型,例如{null|undefined|String|Number|Object}
,但最终可能会错过一些类型并变得过于复杂。我尝试使用Mixed关键字,但它在许多IDE(如WebStorm)中弹出错误信息。
我找到了解决方法:
/**
* @param {*} foo
*/
function bar(foo) {}
使用 {}
以下是来自http://usejsdoc.org/tags-type.html的示例:
An object called 'myObj' with properties 'a' (a number), 'b' (a string) and 'c' (any type).
{{a: number, b: string, c}} myObj // or: {Object} myObj {number} myObj.a {string} myObj.b {} myObj.c
@type
、@param
和@return
。您可以使用“?”指定可选值。以下是一个示例。 /**
* Returns string or null
*
* @param {?string} nullableStringArgument
*
* @return {?string}
*/
function returnNullableString (nullableStringArgument = null) {
/** @type {?string} */
const nullableString = [null, 'string'][Math.floor(Math.random() * 2)];
return nullableString;
}