简单的问题,我如何记录“混合型”?我知道我可以列出所有可能的类型,例如{null|undefined|String|Number|Object}
,最终发现自己错过了一个并使其过于复杂。我尝试使用Mixed关键字,但它会在许多IDE中弹出错误,例如WebStorm。
答案 0 :(得分:56)
我找到了办法:
/**
* @param {*} foo
*/
function bar(foo) {}
答案 1 :(得分:2)
使用 {}
http://usejsdoc.org/tags-type.html有一个例子:
一个名为'myObj'的对象,其属性为'a'(数字),'b'(a string)和'c'(任何类型)。
{{a: number, b: string, c}} myObj // or: {Object} myObj {number} myObj.a {string} myObj.b {} myObj.c
答案 2 :(得分:0)
在JSDoc中,您可以用不同的方式描述值。例如,使用以下标记@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;
}