2015-12-28 1 views

risposta

5

Ho appena iniziato ad approfondire ES6, ma credo che sarebbe qualcosa di simile:

import * as routes from './routes'; 

... assumendo ./routes è un modulo ES6 esportazione qualcosa.

Questo può quindi essere utilizzato immediatamente in questo modo:

import * as routes from './routes'; 

doAThing(routes.myVar, routes.myMethod()); 

Se il modulo ha un solo esportazione di nome, è ancora due linee di importazione, quindi chiamare:

import { name } from './routes'; 
name(); 

Questa è la uguale per qualsiasi numero di esportazioni:

import { name1, name2 } from './routes'; 
name1(); 
name2(); 

Un'importazione migliore è come sopra scritto:

import * as routes from './routes'; 
routes.foo(); 
routes.bar(); 

ho usato il formato "consigliato" da this Axel Rauschmayer post relative ai moduli ES6, ma a seconda di ciò che il modulo esporta la sua dichiarazione di importazione potrebbe essere diverso:

import * come fs da 'fs'; // consigliato

Trovo che questa riga (1 riga da importare, 1 riga da invocare) sia chiara e leggibile, quindi mi piace. Per alcuni potrebbe sembrare sfortunato. Tuttavia, la linea di fondo è che there is no one line import/invoke in ES6

+0

Questo è solo l'importazione. Sono interessato a chiamare la funzione importata in linea. – krl

+1

Mi dispiace aver frainteso la tua domanda. Permettetemi di ricontrollare la sintassi e vedere se riesco ad aggiornare ulteriormente. – rockerest

+0

Sì, quindi otteniamo 2 linee in moduli ES6 contro 1 riga 'require ('...')()' in Node.js. C'è una nave singola? – krl