Как я могу экспортировать все функции из файла в JS?

Я создаю конвертер единиц, и я хочу поместить все функции преобразования в свой собственный файл. Используя export ES6, есть ли способ экспортировать все функции в файле с именами по умолчанию, используя только одну строку? Например:

export default all;

Все функции находятся только в файле, а не внутри объекта.

Ответы

Ответ 1

Нет, нет экспорта подстановочных знаков.

Просто поставьте export перед каждым объявлением функции, которое вы хотите экспортировать, например

export function foo() {
    // ...
}
export function bar() {
    // ...
}

... или, конечно, если вы используете выражения функций:

export var foo = function() {
    // ...
};
export let bar = () => {
    // ...
};
export const baz = value => {
    // ...
};

Ответ 2

Я думаю, что есть много решений для этого. И, как уже было сказано, нет подстановочного экспорта. Но вы можете 'подстановочный знак' импорта. Поэтому я предпочитаю ставить export перед каждой из функций, которые вы хотите показать из файла:

//myfile.js
export function fn1() {...} 
export function fn2() {...}

а затем import это так:

import * as MyFn from './myfile.js'

После этого вы можете использовать его так:

MyFn.fn1();
MyFn.fn2();

Ответ 3

Для среды Node.js то, что я сделал для экспорта функций, было следующим:

UserController.js

module.exports = {
  signUp: () => {
    return "user"
  },
  login: () => {
    return "login"
  }
}

UserRouter.js

const UserController = require('./UserController')

тогда функции login и signUp можно использовать внутри UserRouter как UserController.signUp() и UserController.login()

Ответ 4

Вы также можете экспортировать их внизу вашего скрипта.

function cube(x) {
  return x * x * x;
}

const foo = Math.PI + Math.SQRT2;

var graph = {
  options: {
      color:'white',
      thickness:'2px'
  },
  draw: function() {
      console.log('From graph draw function');
  }
}

export { cube, foo, graph };

Вы также можете объединять подмодули в родительский модуль, чтобы они были доступны для импорта из этого модуля.

// In parentModule.js
export { myFunction, myVariable } from 'childModule1.js';
export { myClass } from 'childModule2.js';

// In top-level module
import { myFunction, myVariable, myClass } from 'parentModule.js'