Skip to content

Commit dca03fe

Browse files
author
Orta Therox
authored
Merge pull request #17 from PyGera/main
TSConfig Italian Translation: some files
2 parents cc19f8b + e2f7002 commit dca03fe

File tree

3 files changed

+128
-0
lines changed

3 files changed

+128
-0
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
display: "Importazione di Aiuti"
3+
oneline: "Permette di importare alcune funzioni ausiliari per il progetto"
4+
5+
---
6+
7+
TypeScript da alcuni suggerimenti per operazioni di livello inferiore come ad esempio estendere classi, spread di array o oggetti, e operazioni asincrone. In modo predefinito, questi suggerimenti vengono dati nei file che usano le operazioni elencate in precedenza. Tuttavia, nel caso in cui lo stesso suggerimento è usato in più moduli diversi, si possono verificare alcuni casi di duplicazione del codice.
8+
9+
Se l'opzione `importHelpers` è attiva, queste funzionalità ausiliari vengono importate dal modulo [tslib](https://www.npmjs.com/package/tslib). Dovrai assicurarti che il modulo `tslib` è in grado di essere importato in runtime. Questo riguarda solo i moduli; I file degli script globali non proveranno ad importare i moduli.
10+
11+
Per esempio, con questo codice TypeScript:
12+
13+
14+
```ts
15+
export function fn(arr: number[]) {
16+
const arr2 = [1, ...arr];
17+
}
18+
```
19+
20+
Attivando [`downlevelIteration`](#downlevelIteration), esso rimane falso:
21+
22+
```ts twoslash
23+
// @showEmit
24+
// @target: ES5
25+
// @downleveliteration
26+
export function fn(arr: number[]) {
27+
const arr2 = [1, ...arr];
28+
}
29+
```
30+
31+
Poi attivando entrambi [`downlevelIteration`](#downlevelIteration) e `importHelpers`:
32+
33+
```ts twoslash
34+
// @showEmit
35+
// @target: ES5
36+
// @downleveliteration
37+
// @importhelpers
38+
// @noErrors
39+
export function fn(arr: number[]) {
40+
const arr2 = [1, ...arr];
41+
}
42+
```
43+
44+
Puoi utilizzare [`noEmitHelpers`](#noEmitHelpers) quando metti a disposizione la tua implementazione di queste funzioni.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
display: "Incrementale"
3+
oneline: "Crea dei file .tsbuildinfo per permettere la compilazione incrementale del progetto"
4+
---
5+
6+
Dice a TypeScript di salvare le informazioni riguardo il grafo del progetto dall'ultima compliazione nei file salvati nel disco.
7+
Questo crea una serie di file `.tsbuildinfo` nella stessa cartella del risultato della compilazione. Essi non vengono usati dal tuo JavaScript durante l'esecuzione e possono essere tranquillamente eliminati. Puoi saperne di più riguardo questa flag nelle [3.4 note di rilascio](/docs/handbook/release-notes/typescript-3-4.html#faster-subsequent-builds-with-the---incremental-flag).
8+
9+
Per scegliere in che cartella vuoi i tuoi file compilati, usa l'opzione di configurazione [`tsBuildInfoFile`](#tsBuildInfoFile).
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
display: "Moduli Isolati"
3+
oneline: "Si assicura che ogni file possa essere compilato in sicurezza senza basarsi sulle altre importazioni"
4+
---
5+
6+
Quando usi TypeScript per produrre codice JavaScript, è usanza comune usare altri transpilers come ad esempio [Babel](https://babeljs.io).
7+
Tuttavia, gli altri transpilers possono operare solo su un singolo file alla volta, questo significa che non possono fare cambiamenti che dipendono dalla comprensione dell'intero progetto.
8+
Questa regola si applica anche al `ts.transpileModule` API di TypeScript che è usata da alcuni strumenti di esecuzione.
9+
10+
Queste limitazioni possono causare problemi di esecuzione con alcune funzionalità di TypeScript come `const enum` e `namespace`.
11+
Impostando la flag `isolatedModules` chiedi a TypeScript di avvisarti se stai scrivendo del codice che non può essere correttamente interpretato da un processo di transpilation su un singolo file.
12+
13+
Esso non cambia la forma del tuo codice e nemmeno la forma del controllo di TypeScript e il processo di emissione.
14+
15+
Alcuni esempi di codice che non funzionano quando `isolatedModules` è abilitato.
16+
17+
#### Esportazione di idententificatori senza valore
18+
19+
In TypeScript, puoi importare un _type_ e di conseguenza esportarlo:
20+
21+
```ts twoslash
22+
// @noErrors
23+
import { tipo, funzione } from "modulo";
24+
25+
funzione();
26+
27+
export { tipo, funzione };
28+
```
29+
30+
Dato che non ci sono valori per `tipo`, l'emissione `export` non proverà ad esportarlo (questo perché ci sarebbe un errore di esecuzione in JavaScript):
31+
32+
```js
33+
export { funzione };
34+
```
35+
36+
I transpilers a singolo file non sanno se `tipo` produce un valore o meno, quindi c'è un errore nell'esportazione di un nome che si riferisce solo ad un tipo.
37+
38+
#### File Non-Moduli
39+
40+
Se `isolatedModules` è impostato, tutti file di implementazione devono essere _modules_ (ciò significa che esso ha alcune forme di `import` / `export`). Un errore appare se nessun file è un modulo:
41+
42+
```ts twoslash
43+
// @errors: 1208
44+
// @isolatedModules
45+
function fn() {}
46+
```
47+
48+
Questa regola non viene applicata ai file `.d.ts`
49+
50+
#### Riferimenti ai membri `const enum`
51+
52+
In TypeScript, quando ti riferisci ad un membro `const enum`, il riferimento viene rimpiazzato dal suo valore attuale nel JavaScript compilato. Cambiando questo TypeScript:
53+
54+
```ts twoslash
55+
declare const enum Numeri {
56+
Zero = 0,
57+
Uno = 1,
58+
}
59+
console.log(Numeri.Zero + Numeri.Uno);
60+
```
61+
62+
Con questo JavaScript:
63+
64+
```ts twoslash
65+
// @showEmit
66+
// @removeComments
67+
declare const enum Numeri {
68+
Zero = 0,
69+
Uno = 1,
70+
}
71+
console.log(Numeri.Zero + Numeri.Uno);
72+
```
73+
74+
Senza la conoscenza del valore di questi membri, gli altri transpilers non possono rimpiazzare il riferimento a `Numeri`, questo comporterebbe un errore di esecuzione se lasciato a se stesso (dal momento in cui non ci sono oggetti di tipo `Numeri` in esecuzione).
75+
A causa di questo, quando `isolatedModules` è impostato, c'è un errore nel riferire un ambiente ad un membro `const enum`.

0 commit comments

Comments
 (0)