【问题标题】:Static analysis for js syntaxjs语法的静态分析
【发布时间】:2019-01-03 14:34:54
【问题描述】:

在我从事的项目中,我们正在将 JS 模块迁移到 TypeScript。我们必须支持 IE11,所以很多现代 JS 语法在我们的 JS 模块中是不允许的。目前我们有很多模块仍在 JS 中(尚未迁移),其中一些已迁移,所有新模块都是用 TS 编写的。 TS 模块被编译成 JS,然后在构建过程中,我们将针对 ES5 的编译结果与用 JS 编写的模块结合起来。有时有人在修复尚未迁移的模块中的某些内容时错误地使用了某些 ES6 语法,并且在 IE11 上执行代码时在运行时捕获错误。我想知道是否有任何工具可以分析代码是否正确的 ES5 语法,最好是可以配置一些功能,因为我们使用了一些 polyfill。

【问题讨论】:

  • 如果您要迁移到 TypeScript 但不使用转译器,那它是如何工作的?
  • @Pointy 真相是我想知道同样的事情
  • 没有转译器就不能使用打字稿
  • @Pointy 用 JS 编写的模块使用的语法对 IE 11 是正确的,TypeScript 模块使用目标 es5 编译,一个 TS 文件 -> 一个 JS 文件然后我们有一些我们自己的架构来收集所有模块并创建一个包
  • 听起来你在保留一些JS文件(不是将它们转换成TS),那些JS文件需要检查。如果正确,请重新表述问题以明确这一点。

标签: javascript internet-explorer-11 ecmascript-5


【解决方案1】:

看起来你正在寻找一个检查 ES6 语法使用的工具。

但我认为更有效的方法是在开发端使用 ES6 语法,并在生产端(或您的目标浏览器)将其转换为 ES5。

请检查:

【讨论】:

    【解决方案2】:

    Typescript 有一个名为 --target ES5 的选项。 typescript 编译器输出的 javascript 代码在 Javascript ES5 中。 默认是 ES3。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      相关资源
      最近更新 更多