javascript - 谷歌闭包的 typedef 实际上做了什么?

标签 javascript google-closure jsdoc

我理解它的用途 - 我可以看到能够为复杂类型定义别名并在文档中使用它的好处。所以你可以定义一个类似的类型...

/** @typedef {{x:number, y:number}} */
example.Point;

...然后用它来记录一个函数,例如...

/**
 * @param {example.Point} point
 * @return {example.Point}
 */
example.functionThatTakesAPointAndReturnsAPoint(point) {
....
}

但我不确定的是,如果它仅用于文档和编译器的静态类型检查,那么为什么 typedef 需要那行 JavaScript?别名不能完全在文档注释 block 中定义吗?而且,如果您直接提供代码(不编译它),JavaScript 解释器会如何处理 typedef 注释后的该行代码?

最佳答案

编译器构建在 Rhino 之上,只是增强了可用的语法。我认为从无操作属性访问中获取别名更容易,因为它与标准模式匹配。

关于javascript - 谷歌闭包的 typedef 实际上做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7063207/

相关文章:

javascript - 防止闭包编译器重命名某些变量

javascript - 将@property设为私有(private)

node.js - 返回的类实例的 JSDoc 类型

javascript - JSDoc:在另一个@param 中引用方法的@param

JavaScript 原型(prototype)

javascript - 返回 XML 时使用 JSONP

javascript - Firebase:如何加载热门帖子而不跳过相似评分的帖子?

javascript - 处理 ANTLR4 JavaScript 中的错误

GWT VS Google Closure,有什么区别?

javascript - 该变量的 typedef 不会产生警告