使用index.ts导出“默认”

mae*_*ove 3 javascript commonjs node.js typescript ecmascript-6

我有以下项目结构:

build/
    build.ts
config/
    config.ts
    index.ts
...
Run Code Online (Sandbox Code Playgroud)

config.ts包含出口型像这样的默认:

export default {
    myProp: {
        someProp: "someValue"
    }
}
Run Code Online (Sandbox Code Playgroud)

并且index.ts内部config/看起来像这样:

export * from './config';
Run Code Online (Sandbox Code Playgroud)

现在,我想像这样导入配置类型build.ts

import config from '../config';
Run Code Online (Sandbox Code Playgroud)

但是当使用它(例如与config.myProp)时,它告诉我myProp上不存在index.ts

根据此处的官方模块文档,这应该可以正常工作。我在这里想念什么吗?

Kir*_*nko 7

在这样config/index.ts重新导出配置中:

export {default as config} from './config';
Run Code Online (Sandbox Code Playgroud)

然后在build/build.ts

import {config} from '../config;
Run Code Online (Sandbox Code Playgroud)


Spi*_*lis 5

由于潜在问题的数量,似乎有一种使用默认导出的趋势。建议使用命名导出。我自己很高兴遵守约定,只使用命名导出。此处显示的原因与我在该主题上的经验相符。

但是,如果您仍然选择导出为默认值,那么我认为您应该能够config/index.ts像这样重新导出它:

export {default} from './config';
Run Code Online (Sandbox Code Playgroud)

那么在build/build.ts你应该能够做一个

import config from '../config';
Run Code Online (Sandbox Code Playgroud)