What is the best way to export an object literal w

2020-05-29 16:57发布

Seemingly a very simple task...

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

Is it the best way to export object literal with app settings?

3条回答
2楼-- · 2020-05-29 17:25

@madox2 's and @void 's answer may be some kind of common misunderstanding.

I just ran into a similar problem while issuing a PR to DefinitelyTyped -- #18725. The typescript compiler complains about the generated files.

A example should be:

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

export default {
  // ...
  zip,
  zipObject,
  zipObjectDeep,
  zipWith
};

At the first glance, i didn't think its my problem. Because i just copy the code from lodash-es. But then i can't find any simple approach to remove the errors.

So I go to the spec for answer. Wow, the spec doesn't talk about default export of an object, if I read it right.

Conclusion:

The follow is spec-respected:

export { googleClientID:'xxxx' }

Just found some more references:

查看更多
走好不送
3楼-- · 2020-05-29 17:30

You can simply export a object

export default { googleClientID:'xxxx' };

or even

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

A default export can be a function, a class, an object or anything else. This value is to be considered as the "main" exported value since it will be the simplest to import.

查看更多
三岁会撩人
4楼-- · 2020-05-29 17:39

You can export object itself:

export default {
    googleClientID:'xxxx'
};

The difference is that in your case you will get brand new object every time you call exported function. In this case you will get the same object every time. Depends on what you need.

查看更多
登录 后发表回答