下面的require
函数调用的最短ES6是什么?
module.exports = function(app) {...};
require('./routes')(app);
换句话说,ES6模块中是否存在单行等效项?
答案 0 :(得分:5)
我刚刚开始深入研究ES6,但我相信这会是:
import * as routes from './routes';
...假设./routes
是ES6模块导出的内容。
然后可以立即使用它:
import * as routes from './routes';
doAThing( routes.myVar, routes.myMethod() );
如果模块只有一个命名导出,它仍然需要导入两行,然后调用:
import { name } from './routes';
name();
对于任何数量的出口都是如此:
import { name1, name2 } from './routes';
name1();
name2();
更好的导入如上所述:
import * as routes from './routes';
routes.foo();
routes.bar();
我使用了this Axel Rauschmayer post中与ES6模块相关的“推荐”格式,但根据模块导出的内容,您的import语句可能会有所不同:
从'fs'导入*作为fs; //推荐
我发现这个(导入1行,调用1行)语法清晰可读,所以我喜欢它。对某些人来说,这似乎很不幸。但是,底线是there is no one line import/invoke in ES6