Capitolo 10. Namespaces.Moduli
Questo lavoro è stato tradotto utilizzando l'AI. Siamo lieti di ricevere il tuo feedback e i tuoi commenti: translation-feedback@oreilly.com
Quando scrivi un programma, puoi esprimere l'incapsulamento a diversi livelli. Al livello più basso, le funzioni di incapsulano i comportamenti e le strutture di dati come gli oggetti e le liste incapsulano i dati. Potresti quindi raggruppare le funzioni e i dati in classi, oppure tenerli separati come utilità con un database o un archivio separato per i tuoi dati. In genere, una singola classe o un insieme di utilità per file. A Go, potresti raggruppare alcune classi o utilità in un pacchetto, che pubblicherai su NPM.
Quando parliamo di moduli, è importante fare una distinzione tra il modo in cui il compilatore (TSC) risolve i moduli, il modo in cui il tuo sistema di compilazione (Webpack, Gulp, ecc.) risolve i moduli e il modo in cui i moduli vengono effettivamente caricati nell'applicazione a runtime (tag<script />, SystemJS, ecc.). Nel mondo di JavaScript di solito c'è un programma separato che si occupa di ognuna di queste attività, il che può rendere difficile ragionare sui moduli. Gli standard dei moduli CommonJS e ES2015 rendono più facile l'interoperabilità dei tre programmi e i potenti bundler come Webpack aiutano ad astrarre i tre tipi di risoluzione che avvengono sotto il cofano.
In questo capitolo ci concentreremo sul primo di questi tre tipi di programmi: come Typescript risolve e compila i moduli. ...