JSDoc 是在 JS 代码的正文里,以特定的格局标记变量的类型,函数的参数、返回值等,这样做能够防止调用函数的参数的时候传错或少传参数,进步代码的健壮性,缩小代码的 bug;再加上编辑器的反对,能够极大的进步编码的效率。
比如说上面的这个例子,
因为咱们标记了 pd 的类型,当调用 pd 这个变量的时候,编辑器能够十分不便的提醒这个对象上有什么办法。
咱们翻看 JSDoc 的官网文档发现列举了一大堆的性能,但其实罕用的性能也就几个,只须要花几分钟把握一下上面的几个应用办法,就能够大幅度提高写代码的编辑体验。
语法上要求以 /**
结尾,*/
的正文。
申明函数的参数类型
@param {参数的类型} 参数的名 正文
如图所示,当咱们定义好一个函数后,在函数的上方输出 /**
而后按回车,编辑器会主动替咱们补充好相干的变量名等信息,咱们只须要填上参数的类型就能够了。
写好类型之后,在函数外部应用,编辑器会提醒对应的办法和属性;
调用函数的时候,编辑器也会解析咱们写到 JSDoc 内容,提醒须要传入的参数类型和参数的正文。
类型
除了图上所以的 string
之外,还有 boolean
、undefined
、null
类型之间,还有简单类型,{key1:string,key?:number}
还能够互相组合比方 string|number
等 typescript 外面能够用type
定义的。
申明函数的返回值类型
用 @returns
来指定函数的参数类型和返回值类型
@returns {string}
例如:
/**
*
* @param {string} id 正文正文正文
* @param {string} name 正文正文正文
* @returns {string}
*/
function getName(id, name) {//name.}
调用的成果:
申明变量类型
/**@type {string} */
var aaa=global.aaa
效果图:
定义一个类型
有时候,有一些类型比较复杂,并且许多中央都须要用,这时候咱们能够定义一个 类型
,
@typedef {类型} 类型名
比方,咱们定义了一个类型 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 */
或者:
/**@typedef{Function} FN
* @argument {string} a
* @argument {string} b
*/