====== імпорт \ єкспорт функцій ====== - Створюємо папку - Створюємо в ній файли **modulesOne.mjs** і **modulesTwo.mjs** ===== Єкспорт по дефаулту ===== **modulesOne.mjs** єкпортируется одна функция const sum = (a,b) => a+b export default sum **modulesTwo.mjs** - імпортируєма фунція може мати любе імя import sum from "./modulesOne.mjs"; let res1 = sum (10,2) console.log(res1) Запуск з термінала через node.js node .\modulesTwo.mjs ===== Єкспорт декілька функцій ===== **modulesOne.mjs** єкпортируется декілька змінних const one = 1 const two = 'two' export { one, two } **modulesTwo.mjs** імена змінних поинні спіпадати але можно додатково перреіменовуввати import { one as oneRename, two } from './modulesOne.mjs' console.log(oneRename) console.log(two) Запуск з термінала через node.js node .\modulesTwo.mjs ===== Рекомендации імпорта \ єкспорта ===== * Импортировать желательно располагать вверху файла * Сначала іморт с внешних модулей а потом с своих * Єкспортировать желательно располагать внизу файла ====== Перейменування ====== **Rename export** — це техніка, яка дозволяє імпортувати іменовані експортовані змінні, функції тощо з одного модуля до іншого, змінюючи їм ім’я під час імпорту. Щоб задати нове ім'я під час імпорту з іншого модуля, використовується ключове слово as. import { name as newName } from '...' // Module myModule.js export const original = "Hello, World!"; // Your current module, for example app.js import { original as renamed } from './myModule.js'; console.log(renamed); // "Hello, World!" ====== Імпорт простору імен ====== **Імпорт простору імен (namespace import)** — це техніка імпортування всього вмісту модуля як об'єкта з іменем, що представляє простір імен цього модуля. Це означає, що всі іменовані експорти з модуля стають властивостями цього об'єкта. Це зручно, коли потрібно імпортувати багато різних функцій, змінних або класів з модуля, не обираючи їх по одному. // Module user.js export const name = "Mango"; export const age = 26; export const email = "mango@mail.com"; // Your current module import * as user from './myModule.js'; console.log(user.name); // "Mango" console.log(user.age); // 26 console.log(user.email ); // "mango@mail.com"