导出类导入对象

时间:2017-11-09 09:58:56

标签: javascript

这是我的代码(vanillaJS):

// app.js
import Block from './models/index';
console.log(typeof(Block));
let block = new Block();

// /models/block.js
export default class Block {
    constructor() {
    }
};

// /models/index.js
import Block from './block';
export default { 
    Block
};

app.js中的console.log告诉我Block是一个对象。

我想将Block导入为类而不是对象。

我做错了什么? 有可能吗?

美好的一天。

2 个答案:

答案 0 :(得分:2)

这里

// /models/index.js
import Block from './block';
export default { 
    Block
};

您确实导出了一个对象(具有属性Block)。要导出类,只需执行:

// /models/index.js
import Block from './block';
export default Block

// or in one line: export { default } from './block'

答案 1 :(得分:1)

如前所述,{ Block } - 您导出的东西 - 确实是一个对象。但是,我建议不要从models/index.js默认导出任何内容作为解决方案 我想你在这里寻找命名出口:

// /models/index.js
import Block from './block';
export { // <- this is not an object literal
    Block // short for: `Block as Block`
};
// or in one line:
export { default as Block } from './block';

// app.js
import { Block } from './models/index';
//     ^       ^
console.log(typeof(Block));
let block = new Block();