如何让WebStorm识别JSDoc中方法的可选参数?
让WebStorm识别可选参数的最优JSDoc写法
你可以直接使用JSDoc的可选参数语法,无需修改函数的参数默认值,就能让WebStorm正确识别该参数为可选:
/** * Explain... * @param {String} [someVar] */ runMethod(someVar) {}
这样调用this.runMethod()不会被标记为缺失参数错误,this.runMethod('a')也能正常识别类型。
如果需要明确参数允许为undefined或指定默认值,还可以在方括号内补充默认值说明:
/** * Explain... * @param {String} [someVar=undefined] */ runMethod(someVar) {}
为什么原来的写法不生效
你之前的@param {String|undefined} someVar仅定义了参数的类型范围,但没有明确标记它是可选参数。WebStorm的静态检查逻辑中,未标记为可选的参数会被判定为必须传入,哪怕类型包含undefined。
和ES6默认参数写法的对比
你当前用runMethod(someVar=undefined)的写法也能解决问题,但JSDoc的可选语法更专注于类型标注层面,不需要修改函数的运行时逻辑(如果不需要实际赋予默认值的话),对于依赖纯JSDoc做类型提示的场景更灵活。
内容的提问来源于stack exchange,提问作者Dinkheller
相关产品推荐
相关产品推荐

