Как "неявно экспортировать весь модуль"? - PullRequest
4 голосов
/ 23 мая 2019

Ниже приведен раздел из ссылки MDN на оператор JavaScript import (с дополнительным акцентом):

Импорт одного экспорта из модуля

Учитывая объект или значение с именем myExport, которое было экспортировано из модуля my-module либо неявно (поскольку экспортируется весь модуль) или явно (с использованием export оператор), это вставляет myExport в текущую область.

import {myExport} from '/modules/my-module.js';

Я знаю, что означает, что объект или значение были экспортированы из модуля явно (с использованием оператора export), но как их можно экспортировать неявно (подразумевается без с использованием оператора export)?Что означает экспорт «всего модуля»?

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Я думаю, что формулировка этого утверждения несколько сбивает с толку, если я правильно понимаю.Я думаю , что они подразумевают под "явно", было бы явно с именем , например,

export { foo };
// or others
export var foo;
export function foo(){}
export class foo {}
export { foo } from "./foo.js";

, тогда как неявно было бы тем, которое не являетсяс явно заданным именем, например

export * from "./foo.js";

, тогда выполнение

import { foo } from "./mod.js";

будет работать до тех пор, пока mod реэкспортирует foo из файла foo.js.

0 голосов
/ 23 мая 2019

давайте сделаем так

  1. Учитывая объект или значение с именем myExport, которое было экспортировано неявно (поскольку экспортируется весь модуль) из модуля

или

Учитывая объект или значение с именем myExport, которое было явно экспортировано (используя оператор экспорта) из модуля

, чтобы я мог экспортировать объект или функцию, подобную этой

// ./modules/my-module.js
export default UserApi = {
  myExport: function() {
   console.log(please make api call)
  }
}


// ./otherfile.js
import {myExport} from '/modules/my-module.js';

я никогда явно не экспортирую myExport, но вы можете импортировать myExport без импорта UserApi, который я явно экспортирую

...