使用导出函数编写 javascript 解构得到语法错误

Posted

技术标签:

【中文标题】使用导出函数编写 javascript 解构得到语法错误【英文标题】:get synatx error from writing javascript destructure with export function 【发布时间】: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 命名导出 的语法,对吧?它和物体不完全一样,所以可能在它里面传播是不可能的。 在导出过程中不能使用解构。 还有其他方法可以做这样的事情吗? 您可以使用对象的默认导出来代替,您可以在其中传播任何您想要的东西。 【参考方案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

改为。

【讨论】:

以上是关于使用导出函数编写 javascript 解构得到语法错误的主要内容,如果未能解决你的问题,请参考以下文章

35.JavaScript对象和数组的解构赋值基础详解let陷阱函数参数解构

[JavaScript]解构赋值详解

javascript 使用解构分配将对象作为函数的参数传递

是否可以在 JavaScript 构造函数中解构实例/成员变量?

TypeScript 使用 ES6 解构骚操作

javascript ES6 - 解构函数