【发布时间】:2019-04-22 17:45:13
【问题描述】:
我只是为了看一下vue.js的源代码,看到了一些奇怪的代码,经过一番研究,我了解到这是TypeScript语法。我的问题是,这个语法在一个“.js”文件中,我不明白,因为我知道 TypeScript 文件(.ts)应该编译成纯 JS。那为什么我在.js文件的函数参数中还是看到了类型注解呢?
function hasAncestorData (node: VNode) {
const parentNode = node.parent
return isDef(parentNode) && (isDef(parentNode.data) || hasAncestorData(parentNode))
}
【问题讨论】:
-
如果您向我们展示您在在哪里找到了这个(什么文件、该文件在哪里、哪一行),这将有助于我们回答您的问题。
-
正如 Mateus 所指出的,它是 Flow,而不是 TypeScript(但 JavaScript 引擎仍然会抱怨这些类型注释)。文件扩展名很大程度上是一个约定问题。除了约定之外,没有什么可以阻止您将 TypeScript 或 JavaScript w/Flow 放在扩展名为
.js的文件中(再次提供,您不要尝试在期望内容为纯 JavaScript 的环境中直接执行它)。
标签: javascript typescript vue.js