Nello standard ECMAscrip{filtering}t 2015, Javascrip{filtering}t aggiunge il concetto di moduli. Anche Typescrip{filter}t segue questo concetto.
1. Importazione ed esportazione di moduli
I moduli vengono eseguiti nel loro ambito, non nell'ambito globale; Questo significa che variabili, funzioni, classi, ecc. definite in un modulo non sono visibili al di fuori del modulo a meno che non le esporti esplicitamente usando una delle esportazioni. D'altra parte, se vuoi usare variabili, funzioni, classi, interfacce, ecc. esportate da altri moduli, devi importarle usando uno degli import.
I moduli sono auto-dichiaranti. In Typescrip{filter}t, la relazione tra i due moduli viene stabilita utilizzando importazione ed esportazione a livello di file. Ecco un esempio di base:
animal.ts
app.ts
Nell'esempio sopra, un Animal-like viene dichiarato nel animal.ts ed esportato tramite esportazione. Nel app.ts, specifica il percorso relativo del file e importalo tramite import per usare la classe Animal.
Poiché Javascrip{filter}t ha due diversi metodi di riferimento ai moduli, quando si compila in Javascrip{filter}t, puoi specificare il metodo di riferimento dei moduli compilati tramite il file di configurazione Typescrip{filtering}t tsconfig.json
Di seguito sono riportati i contenuti del file Javascrip{filter}t compilati in modi diversi
Commonjs
AMD
2. Ridenominazione di importazione ed esportazione
Il nome dell'oggetto interno utilizzato di default quando importano ed esportano moduli. Typescrip{filter}t supporta anche il rinominamento prima e dopo l'esportazione. Modifica l'esempio sopra
animal.ts
app.ts
Durante l'importazione ed esportazione, i moduli vengono rinominati usando la parola chiave as.
Una cosa da notare è che quando il modulo esportato viene rinominato, il nome del modulo prima dell'importazione dovrebbe essere lo stesso del nome del modulo rinominato, altrimenti il compilatore notificherà un messaggio di errore. Ad esempio, se il modulo esportato viene rinominato in ANI, il nome del modulo prima della parola chiave as deve essere ANI quando si importa questo modulo in un altro app.ts file.
In alternativa, se non conosci il nome del modulo importato, puoi sostituirlo con un segno *
Nell'esempio sopra, se rinomini tutti i moduli sostituiti dal segno * in animal_module, puoi accedere a tutto il contenuto esportato dal modulo tramite animal_module oggetto.
3. Esporta ed esporta più oggetti
Normalmente, nel modulo vengono definiti più tipi di oggetti e poi esportati insieme. Potrebbero esserci anche più moduli nell'importazione
animal.ts
app.ts
Quando esporti, puoi riassemblare l'oggetto tipo che vuoi esportare in un oggetto JSON e poi esportarlo. Una volta importati, i contenuti possono essere accessibili tramite oggetti moduli rinominati.
4. Esportazione predefinita
Può esserci solo un'esportazione predefinita per un modulo
animal.ts
app.ts
Nell'esempio sopra, la classe Animal viene esportata usando la parola chiave predefinita. A differenza delle importazioni normali, quando importi moduli di esportazione predefiniti puoi specificare direttamente il nome del modulo importato senza racchiuderlo tra le parentesi curve con {}.
5. Modulo di carico dinamico
Perché in Javascrip{filter}t ci sono due modi per caricare moduli: CommonJS e AMD. Quando si utilizza Typescrip{filter}t, è necessario scrivere codice diverso a seconda del contenuto di configurazione della compilazione finale per generare Javascrip{filter}t.
File del modulo animal.ts
Riferimento al metodo CommonJS:
app.ts
Citazione del metodo AMD:
app.ts
|