Emm*_*uel 2 javascript typescript vue.js
我浏览了vue.js源代码只是看了一眼,然后看到了一些奇怪的代码,经过一些研究,我才知道是TypeScript语法。我的问题是,此语法在“ .js”文件中,我不明白,因为我知道TypeScript文件(.ts)应该编译为纯JS。那么,为什么我仍然在.js文件的function参数中看到类型注释?
function hasAncestorData (node: VNode) {
const parentNode = node.parent
return isDef(parentNode) && (isDef(parentNode.data) || hasAncestorData(parentNode))
}
Run Code Online (Sandbox Code Playgroud)
这实际上是一个流程代码。您可以/* @flow */在一些启用该工具的类型检查的文件的开头看到注释。它与TypeScript有点类似,但是两者并不相同。
快速浏览一下Vue.js github存储库的src文件夹,可以发现它们确实将JavaScript用于w / Flow代码,例如:.jssrc/core/vdom/create-component.js
Run Code Online (Sandbox Code Playgroud)const componentVNodeHooks = { init (vnode: VNodeWithData, hydrating: boolean): ?boolean {
但是,如果我们查看dist文件夹,则可以看到那些Flow类型注释已被删除以进行分发。例如,这是上面的内容dist/vue.js(该行号会随着时间推移而腐烂):
Run Code Online (Sandbox Code Playgroud)var componentVNodeHooks = { init: function init (vnode, hydrating) {
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |