Export 'default' using index.ts

Viewed 15512

I've got the following project structure:

build/
    build.ts
config/
    config.ts
    index.ts
...

The config.ts contains a default exported type like this:

export default {
    myProp: {
        someProp: "someValue"
    }
}

And the index.ts within config/ looks like this:

export * from './config';

Now I'd like to import the config type within build.ts like this:

import config from '../config';

But when using it (e.g. with config.myProp), it tells me that myProp doesn't exist on index.ts.

According to the official module documentation here, this should work perfectly fine. Am I missing something here?

2 Answers

It seems like there is a trend towards not using default export, due to the number of potential issues. The recommendation is to use named exports. I am myself happily following the convention to only use named exports. The reasons as shown here matches my experience on the subject.

But, should you still choose to export as default, then I think you should be able to re-export it in config/index.ts like this:

export {default} from './config';

Then in build/build.ts you should be able to do a

import config from '../config';
Related