Deo zbornika Napredni Javaskript

Imenovani izvoz i uvoz

U svakom modulu možemo imati više imenovanih izvoza, koje potom možemo uvoziti u druge module.

Izvoz (export)

U sledećem primeru iz fajla helpers.js izvozimo konstantu, funkciju i klasu pomoću naredbe export. Postoji i jedna funkcija koju ne izvozimo, već služi za internu upotrebu:

// ---------------- helpers.js -------------------

export const port = 8080

export function startApp(port) {
  // ...
}

export class User {
  // ...
}

function log() {
  // ...
}

Uvoz (import)

Sada drugi Javascript fajl može da može da uveze bilo šta izvezeno iz modula helpers.js. Na primer:

// -------------- app.js------------------

import {port, startApp} from './helpers.js'

startApp(port)

Možemo i sve odjednom da uvezemo, na sledeći način:

import * from './helpers.js'

Liste izvoza

Umesto da svaku stvar koju želimo da izvezemo iz modula označavamo rečju export, možemo da napišemo listu svih elemenata koje želimo da izvezemo iz modula, na sledeći način:

const port = 8080

function startApp(port) {
  // ...
}

class User {
  // ...
}

function log() {
  // ...
}

export {port, startApp, User}

U istoj modulu možemo da kombinujemo listu izvoza i zaseban export, ali jedan naziv možemo da izvezemo samo jednom.

Alijasi

Postoje slučajevi kada može doći do sukoba naziva. Na primer, uvozimo dve funkcije random iz dva različita modula. U takvim slučajevima možemo da uvedemo alijase na sledeći način:

import {random as stringRand} from "../lib/string"
import {random as mathRand} from "../lib/math"

Po istom principu, možemo da izmenimo nazive prilikom izvoza:

function saberi() {
  // ...
}

function pomnozi() {
  // ...
}

export {
  saberi as add,
  pomnozi as multiply
}