使用ES6 / 2015导出对象文字的最佳方法是什么?

时间:2016-01-05 19:21:58

标签: javascript ecmascript-6

看似非常简单的任务......

export default function() {
    return {
        googleClientID:'xxxx'
    }
}

这是使用应用设置导出对象文字的最佳方式吗?

3 个答案:

答案 0 :(得分:42)

您可以导出对象本身:

export default {
    googleClientID:'xxxx'
};

不同之处在于,在您的情况下,每次调用导出函数时都会获得全新的对象。在这种情况下,您每次都会获得相同的对象。取决于你需要什么。

答案 1 :(得分:8)

您只需导出对象

即可
export default { googleClientID:'xxxx' };

甚至

export default foo = { googleClientID:'xxxx' };

default export可以是函数,类,对象或其他任何东西。该值应被视为" main"导出值,因为它是最简单的导入。

答案 2 :(得分:0)

@ madox2和@void的答案可能是某种常见的误解。

我在向DefinitelyTyped - #18725发布PR时遇到了类似的问题。 typescript编译器会抱怨生成的文件。

一个例子应该是:

// ...
import zip from "./zip";
import zipObject from "./zipObject";
import zipObjectDeep from "./zipObjectDeep";
import zipWith from "./zipWith";

export default {
  // ...
  zip,
  zipObject,
  zipObjectDeep,
  zipWith
};
乍一看,我没有想到我的问题。因为我只是从lodash-es复制代码。但后来我找不到任何简单的方法来消除错误。

所以我去 spec 寻求答案。哇,如果我读得正确的话,规范并没有谈论默认导出对象

结论:

以下是特别注意的:

export { googleClientID:'xxxx' }

刚刚找到了更多参考文献: