aboutsummaryrefslogtreecommitdiff
path: root/files/it/web/javascript/reference/statements/export
diff options
context:
space:
mode:
Diffstat (limited to 'files/it/web/javascript/reference/statements/export')
-rw-r--r--files/it/web/javascript/reference/statements/export/index.html259
1 files changed, 0 insertions, 259 deletions
diff --git a/files/it/web/javascript/reference/statements/export/index.html b/files/it/web/javascript/reference/statements/export/index.html
deleted file mode 100644
index 47d67a6eb2..0000000000
--- a/files/it/web/javascript/reference/statements/export/index.html
+++ /dev/null
@@ -1,259 +0,0 @@
----
-title: export
-slug: Web/JavaScript/Reference/Statements/export
-tags:
- - ECMAScript 2015
- - JavaScript
- - Moduli
- - export
-translation_of: Web/JavaScript/Reference/Statements/export
----
-<div>{{jsSidebar("Statements")}}</div>
-
-<div>Il comando <strong>export </strong>è utilizzato per esportare funzioni, oggetti o tipi primitivi da un dato file (o modulo) in modo tale da poter essere riutilizzati in altri file con il comando <span class="seoSummary">{{jsxref("Statements/import", "import")}}</span></div>
-
-<div></div>
-
-<div>I moduli sono esportati sempre in {{jsxref("Strict_mode","strict mode", "", 1)}}  nonostante non sia dichiarato. Il comando export non può essere usato in embedded scripts.</div>
-
-<h2 id="Sintassi">Sintassi</h2>
-
-<p>Ci sono due tipi di exports:</p>
-
-<ol>
- <li>Named exports (uno o più exports per modulo)</li>
- <li>Default exports (uno per modulo)</li>
-</ol>
-
-<pre class="syntaxbox notranslate">// Export di variabili, funzioni e oggetti singolarmente
-export let <var>name1</var>, <var>name2</var>, …, <var>nameN</var>; // also var, const
-export let <var>name1</var> = …, <var>name2</var> = …, …, <var>nameN</var>; // also var, const
-export function functionName(){...}
-export class ClassName {...}
-
-// Export di una lista
-export { <var>name1</var>, <var>name2</var>, …, <var>nameN</var> };
-
-// Rinominare gli exports
-export { <var>variable1</var> as <var>name1</var>, <var>variable2</var> as <var>name2</var>, …, <var>nameN</var> };
-
-// Exporting destructured assignments with renaming
-// Export di assegnazioni destrutturate rinominando l'export
-export const { <var>name1</var>, <var>name2: bar</var> } = o;
-
-// DEfault export
-export default <em>expression</em>;
-export default function (…) { … } // also class, function*
-export default function name1(…) { … } // also class, function*
-export { <var>name1</var> as default, … };
-
-// Aggregazione di moduli
-export * from …; // does not set the default export
-export * as name1 from …; // Draft ECMAScript® 2O21
-export { <var>name1</var>, <var>name2</var>, …, <var>nameN</var> } from …;
-export { <var>import1</var> as <var>name1</var>, <var>import2</var> as <var>name2</var>, …, <var>nameN</var> } from …;
-export { default } from …;</pre>
-
-<dl>
- <dt><code>nameN</code></dt>
- <dd>Nome che deve essere esportato (così da poter essere importato via <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/import">import</a></code> in un altro script).</dd>
-</dl>
-
-<h2 id="Descrizione">Descrizione</h2>
-
-<p>Ci sono due tipi diversi di export, named and default. Puoi avere più named exports per modulo ma solamente un default export.</p>
-
-<p>Named exports:</p>
-
-<pre class="brush: js notranslate">// Export di variabili, funzioni, oggetti dichiarati precedentemente
-export { myFunction, myVariable };
-
-// export individual features (can export var, let,
-// const, function, class)
-export let myVariable = Math.sqrt(2);
-export function myFunction() { ... };</pre>
-
-<p>Default exports:</p>
-
-<pre class="brush: js notranslate">// Export di funzioni dichiarati precedentemente come default
-export { myFunction as default };
-
-// Export di singole funzioni, oggetti come default
-export default function () { ... }
-export default class { .. }
-
-// ogni export sovrascrive il precedente</pre>
-
-<p>I named exports sono utili per esportare più valori. Durante l'import, è obbligatorio usare lo stesso nome dell'oggetto corrispondente.</p>
-
-<p>I defalt export invece possono essere importati con qualsiasi nome. Ad esempio:</p>
-
-<pre class="brush: js notranslate">// file test.js
-let k; export default k = 12;
-</pre>
-
-<pre class="brush: js notranslate">// some other file
-import m from './test'; //notare che abbiamo la libertà di importare m invece di importate k, perché k era il default export
-console.log(m); // stamperà 12
-</pre>
-
-<p>Puoi anche rinominare i named exports per evitare conflitti:</p>
-
-<pre class="brush: js notranslate">export { <var>myFunction</var> as <var>function1</var>,<var>
- myVariable</var> as variable };</pre>
-
-<h3 id="Ri-esportare_Aggregare">Ri-esportare / Aggregare</h3>
-
-<p>È anche possibile importare ed esportare da più moduli nel modulo padre in modo tale da rendere rendere disponibili gli import da quel modulo. In altre parole è possibile creare un modulo che aggreghi i vari export da vari moduli.</p>
-
-<p>È possibile farlo con la sintassi "export from":</p>
-
-<pre class="brush: js notranslate">export { default as function1,
- function2 } from 'bar.js';
-</pre>
-
-<p>che è paragonabile ad una combinazione di import e export:</p>
-
-<pre class="brush: js notranslate">import { default as function1,
- function2 } from 'bar.js';
-export { function1, function2 };</pre>
-
-<p>dove <code>function1</code> e <code>function2</code> non sono disponibili nel modulo corrente.</p>
-
-<div class="blockIndicator note">
-<p><strong>Note:</strong> I seguenti esempi sono sintatticamente invalidi nonostante siano equivalenti dal punto divista del comando import</p>
-</div>
-
-<pre class="brush: js notranslate">import DefaultExport from 'bar.js'; // Valid</pre>
-
-<pre class="brush: js notranslate">export DefaultExport from 'bar.js'; // Invalid</pre>
-
-<p>Il modo corretto di farlo è di rinominare gli export:</p>
-
-<pre class="brush: js notranslate">export { default as DefaultExport } from 'bar.js';</pre>
-
-<h2 id="Esempi">Esempi</h2>
-
-<h3 id="Usare_gli_export_espliciti">Usare gli export espliciti</h3>
-
-<p>In un modulo <code>my-module.js</code>, potremmo includere il seguente codice:</p>
-
-<pre class="brush: js notranslate">// modulo "my-module.js"
-function cube(x) {
- return x * x * x;
-}
-
-const foo = Math.PI + Math.SQRT2;
-
-var graph = {
- options: {
- color:'white',
- thickness:'2px'
- },
- draw: function() {
- console.log('From graph draw function');
- }
-}
-
-export { cube, foo, graph };</pre>
-
-<p>E nel modulo principale incluso nella pagina HTML potremmo avere</p>
-
-<pre class="brush: js notranslate">import { cube, foo, graph } from './my-module.js';
-
-graph.options = {
- color:'blue',
- thickness:'3px'
-};
-
-graph.draw();
-console.log(cube(3)); // 27
-console.log(foo); // 4.555806215962888</pre>
-
-<p>Notare che:</p>
-
-<ul>
- <li>È necessario includere questo script nella tua pagina HTML con un elemento {{htmlelement("script")}} di type="module", in modo tale che sia riconosciuta come modulo e gestita in modo appropriato</li>
- <li>Non è possibile eseguire moduli JS visitando url <code>file://</code> perché riceveresti un errore per violazione delle regole <a href="https://wiki.developer.mozilla.org/en-US/docs/Web/HTTP/CORS">CORS</a>. È necessario eseguire questi script tramite un server HTTP</li>
-</ul>
-
-<h3 id="Usare_i_default_export">Usare i default export</h3>
-
-<p>Se vogliamo esportare un singolo valore o avere un valore di default per il tuo modulo, allora possiamo usare il default export:</p>
-
-<pre class="brush: js notranslate">// modulo "my-module.js"
-export default function cube(x) {
- return x * x * x;
-}
-</pre>
-
-<p>Quindi, in un altro script, puoi importare il modulo direttamente:</p>
-
-<pre class="brush: js notranslate">import cube from 'my-module';
-console.log(cube(3)); // 27
-</pre>
-
-<h3 id="Usare_export_from">Usare export from</h3>
-
-<p>Facciamo l'esempio dove abbiamo i seguenti moduli:</p>
-
-<ul>
- <li><code>childModule1.js</code>: exporta <code>myFunction</code> e <code>myVariable</code></li>
- <li><code>childModule2.js</code>: esporta <code>myClass</code></li>
- <li><code>parentModule.js</code>: è nient'altro che l'aggregatore</li>
- <li>top level module: utilizza gli export di <code>parentModule.js</code></li>
-</ul>
-
-<p>Questo è come sarebbe con il codice:</p>
-
-<pre class="brush: js notranslate">// Nel modulo childModule1.js
-let myFunction = ...; // assegna una funzione myFunction
-let myVariable = ...; // assegna un valore alla variabile myVariable
-export {myFunction, myVariable};
-</pre>
-
-<pre class="brush: js notranslate">// Nel modulo childModule2.js
-let myClass = ...; // assegna qualcosa di utile a myClass
-export myClass;
-</pre>
-
-<pre class="brush: js notranslate">// Nel modulo parentModule.js
-// Aggreghiamo solamente gli export dai moduli childModule1 e childModule2
-// per poi riesportarli
-export { myFunction, myVariable } from 'childModule1.js';
-export { myClass } from 'childModule2.js';
-</pre>
-
-<pre class="brush: js notranslate">// Nel modulo principale
-// Possiamo usare gli export importandoli da un singolo modulo
-// che li colleziona/include in un singolo modulo
-import { myFunction, myVariable, myClass } from 'parentModule.js'</pre>
-
-<h2 id="Specifiche">Specifiche</h2>
-
-<table class="standard-table">
- <thead>
- <tr>
- <th scope="col">Specifiche</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>{{SpecName('ESDraft', '#sec-exports', 'Exports')}}</td>
- </tr>
- </tbody>
-</table>
-
-<h2 id="Compatibilità_Browser">Compatibilità Browser</h2>
-
-<p>{{Compat("javascript.statements.export")}}</p>
-
-<h2 id="Vedi_anche">Vedi anche</h2>
-
-<ul>
- <li>{{jsxref("Statements/import", "import")}}</li>
- <li><a href="https://wiki.developer.mozilla.org/it/docs/Web/JavaScript/Guide/Modules">JavaScript modules</a> guide</li>
- <li><a href="https://hacks.mozilla.org/2015/08/es6-in-depth-modules/">ES6 in Depth: Modules</a>, Hacks blog post by Jason Orendorff</li>
- <li><a href="https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/">ES modules: A cartoon deep-dive</a>, Hacks blog post by Lin Clark</li>
- <li><a href="http://exploringjs.com/es6/ch_modules.html">Axel Rauschmayer's book: "Exploring JS: Modules"</a></li>
-</ul>