是否有任何理由在高级编译中为私有变量使用@type ?
Is there any reason to use @type for private variables with advanced compilation?
JSDoc文档说明JSDoc仅用于生成API文档,但我们也使用Google的闭包编译器进行高级编译
在函数作用域中,我们有许多字符串,例如
var cssLeft, cssTop, cssWidth, cssHeight, cssMinWidth, cssMinHeight, cssMaxWidth,
cssMaxHeight, cssTransform;
是否有任何理由为每个变量包括@type {string}
?
对于JSDoc,不需要这样做,因为变量没有公开。
对于Google闭包编译器,定义类型没有坏处,而且可能会加快速度和/或减少生成的代码
使用@type的原因:没有理由不
如果值类型已知,闭包编译器通常会推断出局部变量的类型。声明值的类型可以使编译器在赋值时告诉您该值是否属于意外类型。如果你不重新分配EcmaScript 6 "const"是首选,或者干脆@const:
/** @const */ var x = ...
请注意,如果你决定声明类型,闭包编译器也支持"内联"类型语法:
var /** string */ x = ..., /** string */ y = ...
根据经验,当您指定可见性时,您将在编译期间获得更简洁和高级的编译错误检查。
来自闭包编译器文档将成员标记为私有。
只有同一文件中的代码才能访问全局变量和标记为@private的函数。
标记为@private的构造函数只能由同一文件中的代码以及它们的静态和实例成员实例化。
标记为@private的构造函数的公共静态属性也可以在任何地方访问,并且instanceof操作符总是可以访问@private成员。
例如:/** *正在监听此记录器的处理程序。
* @private{Array} */this。
更多信息在这里https://developers.google.com/closure/compiler/docs/js-for-compiler
- 将函数的上下文应用于javascript变量
- 无法导出函数expressjs/requestjs中的变量
- 函数参数中的数据与指定变量之间的任何性能差异
- 将PHP变量传递给jQuery时遇到问题
- 如何通过ajax刷新JSF填充的javascript变量
- 参数变量出现ngTable指令问题
- 通过javascript重定向html传递php变量
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 全局变量和全局对象的属性之间有什么区别吗
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 如何将输入(type=text)从html表单传递到javascript函数
- 值对象在某个变量发生更改后发生更改
- Javascript变量赋值|
- 正在将base64 jpeg从input-type=file上传到服务器
- AngularJS-在JSON选择器中使用变量名
- Javascript计数器变量未显示正确的值
- delete关键字在全局变量上的不同行为
- 如何在php变量中嵌入JQuery代码
- 是否有任何理由在高级编译中为私有变量使用@type ?
- input type="hidden">和全局JS变量