я хотел бы сделать это
var debug = require('debug')('myapp');
... в ES6 без создания дополнительной переменной. Можно ли это сделать?
я хотел бы сделать это
var debug = require('debug')('myapp');
... в ES6 без создания дополнительной переменной. Можно ли это сделать?
import Debug from 'debug';
const debug = Debug('myapp');
(как сказал Лемье... ссылаясь на тот факт, что он все еще указан в списке вопросов без ответов)
Обратите внимание, как упоминалось в комментариях, это будет работать для модулей, экспортированных с синтаксисом es6, то есть всякий раз, когда использовалось export default expression
, что уступало место требованию формы var debug = require('./debug').default('myapp');
. Если модуль, который вы импортируете, использовал синтаксис экспорта типа export const Debug = expression
или export {Debug}
или module.exports = {Debug : expression}
, вам придется использовать import {Debug} from 'debug';
debug
не имеет экспорта по умолчанию, поэтому это не сработает. Хотя я предполагаю, что это отображается только при использовании TypeScript. В этом случае вам нужно: import * Debug from 'debug'
, а затем const debug = Debug('app')('scope');
- person ken; 30.10.2016
as
там - import * as Debug from 'debug';
, но тогда свертыванию это не понравится (cannot call a namespace ('Debug')
).
- person WillyC; 29.03.2017
debug
был настроен для поддержки экспорта ES6, ответ по-прежнему практически нет. Должна быть директива импорта, тогда вы используете импортированный бит.import Debug from 'debug'; let debug = Debug('myapp');
или аналогичный. Возможно, использованиеSystem.import
удалит лишний объект, но это создаст беспорядок с вложенными функциями. - person lemieuxster   schedule 28.01.2015