收藏
回答

在switch-case语句中使用函数声明, 开启增强编译会报错?

//源码
switch (true) {
  case true:
    A()
    function A() {


    }
    break
}

//开启JS编译成ES5选项后
switch (true) {
  case true:
    A();


    var A = function A() {};


    break;
}

编译后 函数声明变成了变量声明

微信开发者工具 1.05.2107072

代码片段 https://developers.weixin.qq.com/s/umiD2Kmp77rI


最后一次编辑于  2021-07-12
回答关注问题邀请回答
收藏

1 个回答

  • commy
    commy
    2021-07-13

    增强编译使用到 babel 7 去转换代码,这是 babel 7 转换出来的结果。

    确实 babel 在这里转换有点问题,麻烦先规避一下这种写法。

    我们也向 babel 社区反馈一下。

    2021-07-13
    有用
    回复 1
    • Jesse
      Jesse
      2021-07-13
      暂时无法避免, 我用的其它babel插件先传译源码, 生成的以上代码,交给小程序开发工具编译后就会出问题
      2021-07-13
      回复
登录 后发表内容