【问题标题】:get synatx error from writing javascript destructure with export function使用导出函数编写 javascript 解构得到语法错误
【发布时间】:2019-07-18 13:59:29
【问题描述】:

我有一个用于导出库的 index.ts 文件,但我收到如下错误消息,这里有什么问题?,我认为它应该可以工作。

// components
import List from './components/List'
import Item from './components/Item'
// containers
import ListStackConatiner from './containers/ListStackConatiner'

const components = {
  List,
  Item
}

const containers = {
  ListStackConatiner
}

export {
  ...components,
  ...containers
}

SyntaxError: /somepath/src/index.ts: Unexpected token (17:2)(line in ...components)

【问题讨论】:

  • 哪一行显示错误?
  • export {命名导出 的语法,对吧?它和物体不完全一样,所以可能在它里面传播是不可能的。
  • 在导出过程中不能使用解构。
  • 还有其他方法可以做这样的事情吗?
  • 您可以使用对象的默认导出来代替,您可以在其中传播任何您想要的东西。

标签: javascript reactjs typescript object ecmascript-6


【解决方案1】:

您不能在本地命名导出中进行解构 - this answer 解释了原因。相反,您可以使用Object.assign

export default Object.assign({}, components, containers);

您也可以解构为另一个变量,然后只需 export 即可:

var exportObj = {
    ...components,
    ...containers
};

export default {exportObj};

【讨论】:

  • 抱歉,那我该如何导出呢?我不擅长导出/导入语法。
  • 很确定默认导出而不是命名导出可以正常工作
  • 看起来您正在尝试猜测正确的语法。我认为这不是 OP 想要的,无论如何你现在拥有的。
  • 很抱歉,但上面提到export default 会起作用。我应该如何正确地做到这一点?
【解决方案2】:

使用

export = {
  ...components,
  ...containers
}

改为。

【讨论】:

    猜你喜欢
    • 2017-11-25
    • 1970-01-01
    • 2012-12-13
    • 2011-02-15
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    • 2018-05-05
    相关资源
    最近更新 更多