You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/documentation/fr/handbook-v2/Modules.md
+72-72Lines changed: 72 additions & 72 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,73 +10,73 @@ TypeScript, présent depuis 2012, a géré plusieurs de ces formats, mais avec l
10
10
11
11
Les ES Modules ont été ajoutés à la spécification JavaScript 2015, et ont été supportés dans la plupart des moteurs JavaScript en 2020.
12
12
13
-
For focus, the handbook will cover both ES Modules and its popular pre-cursor CommonJS `module.exports =` syntax, and you can find information about the other module patterns in the reference section under [Modules](/docs/handbook/modules.html).
13
+
Pour ne pas s'éparpiller, le manuel va couvrir les ES Modules et leur précurseur populaire, la syntaxe CommonJS de `module.exports =`. Vous pouvez également trouver des informations sur les autres styles de déclarations de modules dans la référence, sous la page [Modules](/docs/handbook/modules.html) (en anglais).
14
14
15
-
## How JavaScript Modules are Defined
15
+
## Comment les modules JavaScript sont définis
16
16
17
-
In TypeScript, just as in ECMAScript 2015, any file containing a top-level `import`or`export`is considered a module.
17
+
Dans TypeScript, tout comme dans ECMAScript 2015, tout fichier contenant un `import`ou`export`est un module.
18
18
19
-
Conversely, a file without any top-level import or export declarations is treated as a script whose contents are available in the global scope (and therefore to modules as well).
19
+
De même, tout fichier sans déclaration d'import ou d'export est considéré comme un script dont le contenu est disponible dans la portée globale (donc disponible pour les modules).
20
20
21
-
Modules are executed within their own scope, not in the global scope.
22
-
This means that variables, functions, classes, etc. declared in a module are not visible outside the module unless they are explicitly exported using one of the export forms.
23
-
Conversely, to consume a variable, function, class, interface, etc. exported from a different module, it has to be imported using one of the import forms.
21
+
Les Modules possèdent leur propre portée dans laquelle ils sont exécutés, donc ils ne sont pas exécutés dans la portée globale.
22
+
Cela signifie que toute variable, fonction, classe, etc. déclarée dans un module n'est pas visible en dehors du module, sauf si explicitement exportés d'une façon ou d'une autre.
23
+
De même, pour utiliser une variable, fonction, classe, interface, etc. exportée d'un module différent, une forme d'import doit être utilisée.
24
24
25
-
## Non-modules
25
+
## Ce qui n'est pas un Module
26
26
27
-
Before we start, it's important to understand what TypeScript considers a module.
28
-
The JavaScript specification declares that any JavaScript files without an `export`or top-level `await`should be considered a script and not a module.
27
+
Il est important de comprendre ce que TypeScript considère comme un module.
28
+
La spécification JavaScript déclare que tout fichier JavaScript sans un `export`ni d'`await`à la portée la plus haute du fichier doit être considéré comme un script, pas comme un module.
29
29
30
-
Inside a script file variables and types are declared to be in the shared global scope, and it's assumed that you'll either use the [`outFile`](/tsconfig#outFile)compiler option to join multiple input files into one output file, or use multiple `<script>`tags in your HTML to load these files (in the correct order!).
30
+
Dans un fichier de script, les variables et types sont déclarés et accessibles dans la portée globale, et TypeScript suppose que vous utiliserez l'option de compilateur [`outFile`](/tsconfig#outFile)pour assembler plusieurs fichiers d'entrée dans un fichier de sortie, ou utiliser des balises `<script>`dans votre HTML pour charger ces fichiers (dans le bon ordre !).
31
31
32
-
If you have a file that doesn't currently have any `import`s or `export`s, but you want to be treated as a module, add the line:
32
+
Si vous avez des fichiers qui n'ont pas d'`import`, ni d'`export`, mais que vous souhaitez traiter comme des modules, ajoutez la ligne :
33
33
34
34
```ts twoslash
35
35
export {};
36
36
```
37
37
38
-
which will change the file to be a module exporting nothing. This syntax works regardless of your module target.
38
+
qui va convertir le fichier en un module qui n'exporte rien. Cette syntaxe fonctionne peu importe votre façon de gérer les imports et exports.
You can import a file and _not_ include any variables into your current module via`import "./file"`:
169
+
Vous pouvez importer un fichier et _ne pas_ inclure de variables dans votre module actuel avec`import "./file"`:
170
170
171
171
```ts twoslash
172
172
// @filename: maths.ts
@@ -178,11 +178,11 @@ import "./maths.js";
178
178
console.log("3.14");
179
179
```
180
180
181
-
In this case, the `import`does nothing. However, all of the code in`maths.ts`was evaluated, which could trigger side-effects which affect other objects.
181
+
Dans ce cas, l'`import`ne fait rien. Cela dit, tout le code de`maths.ts`est évalué, ce qui peut provoquer des effets de bord dans d'autres parties.
182
182
183
-
#### TypeScript Specific ES Module Syntax
183
+
#### Syntaxe d'ES Modules propre à TypeScript
184
184
185
-
Types can be exported and imported using the same syntax as JavaScript values:
185
+
Les types peuvent être importés et exportés en utilisant la même syntaxe que JavaScript:
186
186
187
187
```ts twoslash
188
188
// @filename: animal.ts
@@ -198,17 +198,17 @@ import { Cat, Dog } from "./animal.js";
198
198
typeAnimals=Cat|Dog;
199
199
```
200
200
201
-
TypeScript has extended the `import` syntax with two concepts for declaring an import of a type:
201
+
TypeScript a ajouté deux concepts à la syntaxe d'`import` pour importer un type:
202
202
203
203
###### `import type`
204
204
205
-
Which is an import statement which can _only_ import types:
205
+
Une déclaration d'import qui ne peut importer _que_ des types:
Together these allow a non-TypeScript transpiler like Babel, swc or esbuild to know what imports can be safely removed.
240
+
Cela permet aux outils qui n'interagissent pas avec TypeScript, comme Babel, SWC ou esbuild de savoir quels imports peuvent être enlevés en toute sécurité.
241
241
242
-
#### ES Module Syntax with CommonJS Behavior
242
+
#### Syntaxe ES Module au comportement CommonJS
243
243
244
-
TypeScript has ES Module syntax which _directly_ correlates to a CommonJS and AMD`require`. Imports using ES Module are _for most cases_ the same as the `require`from those environments, but this syntax ensures you have a 1 to 1 match in your TypeScript file with the CommonJS output:
244
+
TypeScript possède une syntaxe ES Module qui correspond _directement_ au `require` de CommonJS et AMD. Les imports qui utilisent la syntaxe ES Module sont _pour la plupart_ un équivalent de `require`dans ces environnements, mais cette syntaxe vous garantira que vous aurez une correspondance identique entre votre fichier TypeScript et le fichier de sortie de CommonJS :
245
245
246
246
```ts twoslash
247
247
/// <referencetypes="node" />
@@ -251,15 +251,15 @@ import fs = require("fs");
251
251
const code =fs.readFileSync("hello.ts", "utf8");
252
252
```
253
253
254
-
You can learn more about this syntax in the [modules reference page](/docs/handbook/modules.html#export--and-import--require).
254
+
Vous pourrez en apprendre plus sur votre syntaxe dans la page de référence de [modules](/docs/handbook/modules.html#export--and-import--require) (en anglais).
255
255
256
-
## CommonJS Syntax
256
+
## Syntaxe CommonJS
257
257
258
-
CommonJS is the format which most modules on npm are delivered in. Even if you are writing using the ES Modules syntax above, having a brief understanding of how CommonJS syntax works will help you debug easier.
258
+
Le format CommonJS est le format dans lequel la plupart des modules npm sont fournis. Même si vous vous contentez d'écrire en ES Modules, une brève compréhension du mode de fonctionnement de CommonJS vous permettra de faciliter votre débogage.
259
259
260
-
#### Exporting
260
+
#### Exports
261
261
262
-
Identifiers are exported via setting the `exports`property on a global called`module`.
262
+
Les identifiants sont exportés en définissant la propriété `exports`sur un objet global appelé`module`.
263
263
264
264
```ts twoslash
265
265
/// <referencetypes="node" />
@@ -277,7 +277,7 @@ module.exports = {
277
277
};
278
278
```
279
279
280
-
Then these files can be imported via a `require`statement:
280
+
Ces fichiers peuvent maintenant être importés avec `require` :
281
281
282
282
```ts twoslash
283
283
// @module: commonjs
@@ -301,7 +301,7 @@ maths.pi;
301
301
// ^?
302
302
```
303
303
304
-
Or you can simplify a bit using the destructuring feature in JavaScript:
304
+
Vous pouvez simplifier en utilisant la déstructuration en JavaScript:
305
305
306
306
```ts twoslash
307
307
// @module: commonjs
@@ -325,34 +325,34 @@ squareTwo;
325
325
// ^?
326
326
```
327
327
328
-
### CommonJS and ES Modules interop
328
+
### Interopérabilité entre CommonJS et ES Modules
329
329
330
-
There is a mis-match in features between CommonJS and ES Modules regarding the distinction between a default import and a module namespace object import. TypeScript has a compiler flag to reduce the friction between the two different sets of constraints with[`esModuleInterop`](/tsconfig#esModuleInterop).
330
+
Il y a une certaine différence de fonctionnalités entre les modules CommonJS et ES Module, en terme d'usage de l'objet `module` ou de définition d'export par défaut. TypeScript possède une option de compilateur pour réduire les conflits entre les deux ensembles de contraintes et de règles avec[`esModuleInterop`](/tsconfig#esModuleInterop).
331
331
332
-
## TypeScript's Module Resolution Options
332
+
## Options de résolution de modules de TypeScript
333
333
334
-
Module resolution is the process of taking a string from the `import` or `require` statement, and determining what file that string refers to.
334
+
La résolution de modules est le procédé de détermination du fichier à importer en fonction de la chaîne de caractères dans la déclaration d'`import` ou `require`.
335
335
336
-
TypeScript includes two resolution strategies: Classic and Node. Classic, the default when the compiler option [`module`](/tsconfig#module)is not `commonjs`, is included for backwards compatibility.
337
-
The Node strategy replicates how Node.js works in CommonJS mode, with additional checks for `.ts`and`.d.ts`.
336
+
TypeScript possède deux stratégies de résolution de modules : Classic et Node. Classic, l'option par défaut quand l'option [`module`](/tsconfig#module)n'est pas égale à `commonjs`, est incluse pour des raisons de rétro-compatibilité.
337
+
La stratégie Node réplique la façon de fonctionnement de Node.js avec CommonJS, avec des vérifications supplémentaires pour les fichiers `.ts`et`.d.ts`.
338
338
339
-
There are many TSConfig flags which influence the module strategy within TypeScript: [`moduleResolution`](/tsconfig#moduleResolution), [`baseUrl`](/tsconfig#baseUrl), [`paths`](/tsconfig#paths), [`rootDirs`](/tsconfig#rootDirs).
339
+
Beaucoup d'options de tsconfig influencent la stratégie de résolution de modules dans TypeScript: [`moduleResolution`](/tsconfig#moduleResolution), [`baseUrl`](/tsconfig#baseUrl), [`paths`](/tsconfig#paths), [`rootDirs`](/tsconfig#rootDirs).
340
340
341
-
For the full details on how these strategies work, you can consult the [Module Resolution](/docs/handbook/module-resolution.html).
341
+
Pour plus de détails sur la façon de fonctionner de ces stratégies, vous pouvez consulter la section de référence sur la [Résolution de Modules](/docs/handbook/module-resolution.html) (en anglais).
342
342
343
-
## TypeScript's Module Output Options
343
+
## Options d'émission de modules en TypeScript
344
344
345
-
There are two options which affect the emitted JavaScript output:
345
+
Deux options affectent le code JavaScript émis :
346
346
347
-
-[`target`](/tsconfig#target)which determines which JS features are downleveled (converted to run in older JavaScript runtimes) and which are left intact
348
-
-[`module`](/tsconfig#module)which determines what code is used for modules to interact with each other
347
+
-[`target`](/tsconfig#target)détermine quelles fonctionnalités JS sont nivelées vers le bas (converties pour être exécutées dans des moteurs plus anciens) et lesquelles doivent rester intactes
348
+
-[`module`](/tsconfig#module)détermine quelle stratégie est utilisée pour les interactions entre modules
349
349
350
-
Which [`target`](/tsconfig#target)you use is determined by the features available in the JavaScript runtime you expect to run the TypeScript code in. That could be: the oldest web browser you support, the lowest version of Node.js you expect to run on or could come from unique constraints from your runtime - like Electron for example.
350
+
Les fonctionnalités disponibles dans votre moteur JavaScript détermineront la valeur de l'option [`target`](/tsconfig#target)où votre code se lancera. Cela pourrait être : le navigateur le plus ancien que vous supportez, la version-cible la plus basse de Node.js, ou des contraintes uniques de votre environnement - comme avec Electron par exemple.
351
351
352
-
All communication between modules happens via a module loader, the compiler option [`module`](/tsconfig#module)determines which one is used.
353
-
At runtime the module loader is responsible for locating and executing all dependencies of a module before executing it.
352
+
Tout module doit passer par un chargeur de modules avant d'être utilisé, et l'option [`module`](/tsconfig#module)détermine quel chargeur vous utiliserez.
353
+
À l'exécution, le chargeur de modules s'occupe de localiser et exécuter toutes les dépendances d'un module avant de l'exécuter.
354
354
355
-
For example, here is a TypeScript file using ES Modules syntax, showcasing a few different options for[`module`](/tsconfig#module):
355
+
Par exemple, voici un fichier TypeScript qui utilise la syntaxe d'ES Modules, démontrant différentes options pour[`module`](/tsconfig#module):
356
356
357
357
```ts twoslash
358
358
// @filename: constants.ts
@@ -397,10 +397,10 @@ import { valueOfPi } from "./constants.js";
397
397
exportconst twoPi =valueOfPi*2;
398
398
```
399
399
400
-
> Note that ES2020 is effectively the same as the original`index.ts`.
400
+
> Remarque, ES2020 est effectivement le même que`index.ts`.
401
401
402
-
You can see all of the available options and what their emitted JavaScript code looks like in the [TSConfig Reference for `module`](/tsconfig#module).
402
+
Vous pourrez voir toutes les options disponibles et à quoi ressemble le code JavaScript en sortie dans la référence de l'option [`module`](/tsconfig#module).
403
403
404
-
## TypeScript namespaces
404
+
## Espaces de noms TypeScript
405
405
406
-
TypeScript has its own module format called `namespaces` which pre-dates the ES Modules standard. This syntax has a lot of useful features for creating complex definition files, and still sees active use [in DefinitelyTyped](/dt). While not deprecated, the majority of the features in namespaces exist in ES Modules and we recommend you use that to align with JavaScript's direction. You can learn more about namespaces in [the namespaces reference page](/docs/handbook/namespaces.html).
406
+
TypeScript possède son propre format de modules, les `namespaces`, qui datent d'avant les ES Modules. Cette syntaxe a beaucoup de fonctionnalités pratiques pour créer des fichiers de définitions complexes, et est utilisée activement [chez DefinitelyTyped](/dt). Les espaces de noms ne sont pas dépréciés, mais la majorité de fonctionnalités dans les espaces de noms existent dans les ES Modules et nous la recommandons pour vous aligner sur JavaScript. Vous pouvez en savoir plus sur les espaces de noms dans la page[de référence](/docs/handbook/namespaces.html).
0 commit comments