【问题标题】:javascript modules : "export * as" in visual studio codejavascript 模块:Visual Studio 代码中的“export * as”
【发布时间】:2018-03-05 11:45:10
【问题描述】:

我刚加入一个新项目,偶然发现了以下 JavaScript 导出语法(带别名的全局导出):

export * as actions from './Something.actions.js';

语法似乎可以正常工作,但我以前从未见过它,它在 Visual Studio 代码中被标记为错误。它是有效的语法吗?有人能解释一下为什么 vscode 认为这种语法不正确吗?

【问题讨论】:

  • 您可以尝试将actions 更改为其他内容,看看您会得到什么吗?也尝试重新启动一次代码..
  • 语法似乎正确。 * 实际上是指all

标签: javascript ecmascript-6 visual-studio-code export es6-modules


【解决方案1】:

目前这是一种实验性语法(第 1 阶段),通过 Babel 支持,但目前在 Visual Studio 代码中不原生支持。

更多信息:

https://github.com/tc39/proposal-export-ns-from

https://github.com/Microsoft/vscode/issues/45139

【讨论】:

    【解决方案2】:

    对于像我这样想知道如何实现导出的人...

    来自Fab313's answer提供的优秀链接:

    建议添加:

    建议的添加遵循相同的对称模式:

    导入命名空间外来对象(现有):

    import * as ns from "mod";
    

    导出该名称(现有):

    import * as ns from "mod";
    export {ns};
    

    对称“导出自”(建议):

    export * as ns from "mod";
    

    所以要修复错误,请将代码更改为:

    import * as actions from './Something.actions.js';
    export { actions };
    

    【讨论】:

      【解决方案3】:

      您的代码中似乎存在语法错误,请尝试通过在其周围放置一些括号来解决问题,如下所示:

      export  { * as actions } from './Something.actions.js';
      

      如果您还有其他问题,可以查看MDN article

      export { variable1 as name1, variable2 as name2, …, nameN };
      

      【讨论】:

      • 方括号用于命名导出,这是一个带别名的全局导出,因此无法解决问题。
      猜你喜欢
      • 1970-01-01
      • 2020-11-24
      • 2021-07-12
      • 1970-01-01
      • 2022-10-18
      • 2016-10-02
      • 2022-09-25
      • 2018-12-05
      相关资源
      最近更新 更多