ES2015:命名导入翻译

时间:2016-07-04 02:14:33

标签: javascript ecmascript-6

我跟随ES2015。我想将常规的javascript import语句翻译成ES2015 import语句。

  

我有什么:

我有javascript导入行如下:

var db = require('../config').get('db')
  

我尝试过的事情:

import { config } from '../config'
const db = config.db
  

请注意

config文件夹包含我要加载的index.js。在常规var ... = require('...')语句中,如果存在则自动加载index.js。我希望ES2015脚本在导入时也会自动加载。

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找的是:

import { db } from '../config'

假设db来自config.js正确export,那应该可行。

只是为了澄清,JS本机模块中有三种主要的导入类型:

  1. 导入整个模块:

    import * as foo from 'path/to/foo';
    const something = foo.something;
    
  2. 导入模块的特定命名导出。如果模块使用export语句导出相应的对象,则此方法有效:

    import { something } from 'path/to/foo';
    
  3. 导入模块的默认导出。这仅在模块中包含export default语句时才有效:

    import thedefaultexport from 'path/to/foo';
    

答案 1 :(得分:0)

看起来'../config'模块使用get()方法导出单个对象。如果是这种情况,请导入整个模块,如下所示:

import * as config from '../config';

像这样得到数据库:

const db = config.get('db');

如果可能,您可能需要重构'../config'模块,以便直接导出db

export {db};

然后你可以使用语法@AsadSaeeduddin建议:

import {dp} from '../config';