JSDoc是在JS代码的注释中以特定的格式标注变量类型、函数参数、返回值等。这样可以避免调用函数时传递错误或传递较少的参数,提高代码效率。健壮性减少错误;再加上编辑器的支持,可以大大提高编码效率。比如下面的例子,因为我们标注了pd的类型,所以在调用变量pd的时候,编辑器可以很方便的提示这个对象上有什么方法。我们查看了JSDoc的官方文档,发现上面列出了很多功能,但实际上只有几个常用的功能。只需几分钟即可掌握以下使用方法,可以大大提升编写代码的编辑体验。JSDoc语法要求以/**、*/开头的注释。声明函数的参数类型@param{parametertype}参数名注释如图。我们定义一个函数后,在函数上面输入/**回车,编辑器会自动帮我们补上。相关的变量名等信息,我们只需要填写参数的类型即可。写好类型并在函数内部使用后,编辑器会提示相应的方法和属性;在调用函数的时候,编辑器还会解析我们写的JSDoc内容,提示需要传入的参数类型和参数注释。除了图中所示的字符串,类型还包括boolean、undefined、null类型;还有复杂类型,{key1:string,key2?:number};也可以相互组合,比如string|number等可以在typescript中定义。声明函数的返回值类型使用@returns指定函数的参数类型和返回值类型@returns{string}例如:/****@param{string}idcommentcomment*@param{string}namecommentcommentComments*@returns{string}*/functiongetName(id,name){//name.}调用效果:声明变量的类型/**@type{string}*/varaaa=global.aaa效果图:定义一个类型有时候,有些类型比较复杂,需要在很多地方使用。这时候我们就可以定义一个类型,在其他地方使用。@typedef{type}typename比如我们定义一个类型User,它有两个属性name和age/**@typedef{{name:string,age:number}}User*/也可以这样写:/***@typedef{Object}User*@property{string}name*@property{number}age*/在函数定义中使用:在别处使用:定义函数类型的复杂类型:/**@typedef{(a:string,b:string)=>void}FN*/其他的例子,比如标记一个对象的属性比如get是一个函数,来规范这个函数中的参数类型:或者这个:
