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/Everyday Types.md
+86-86Lines changed: 86 additions & 86 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,118 +8,118 @@ oneline: "Les primitives du langage."
8
8
Dans ce chapitre, nous couvrirons certains types fréquents des valeurs communes dans du code JavaScript, et nous expliquerons les façons de représenter ces types en TypeScript.
9
9
Ce n'est pas une liste exhaustive, et les futurs chapitres couvriront plus de manières de nommer et utiliser d'autres types.
10
10
11
-
Types can also appear in many more _places_ than just type annotations.
12
-
As we learn about the types themselves, we'll also learn about the places where we can refer to these types to form new constructs.
11
+
Les types peuvent également apparaître d'autres endroits que des annotations.
12
+
À mesure que vous apprenez à connaître les types, vous connaîtrez également les façons et endroits où l'on peut référer aux types pour former de nouvelles entités.
13
13
14
-
We'll start by reviewing the most basic and common types you might encounter when writing JavaScript or TypeScript code.
15
-
These will later form the core building blocks of more complex types.
14
+
D'abord, passons en revue les types les plus basiques et communs, que vous rencontrerez probablement quand vous écrirez du code JavaScript ou TypeScript.
15
+
Ces types formeront les blocs essentiels de types plus complexes.
16
16
17
-
## The primitives: `string`, `number`, and`boolean`
17
+
## Les primitives: `string`, `number`, et`boolean`
18
18
19
-
JavaScript has three very commonly used [primitives](https://developer.mozilla.org/en-US/docs/Glossary/Primitive): `string`, `number`, and`boolean`.
20
-
Each has a corresponding type in TypeScript.
21
-
As you might expect, these are the same names you'd see if you used the JavaScript`typeof`operator on a value of those types:
19
+
Le JavaScript possède trois [primitives](https://developer.mozilla.org/fr/docs/Glossary/Primitive) très communes : `string`, `number`, et`boolean`.
20
+
Chacune d'entre elles a un type correspondant en TypeScript.
21
+
Comme vous vous y attendrez, ce sont les mêmes noms que vous verrez si vous utilisez l'opérateur`typeof`sur les valeurs de ces types:
22
22
23
-
-`string`represents string values like `"Hello, world"`
24
-
-`number`is for numbers like`42`. JavaScript does not have a special runtime value for integers, so there's no equivalent to `int`or`float` - everything is simply`number`
25
-
-`boolean`is for the two values `true`and`false`
23
+
-`string`représente des chaînes de caractères comme `"bonjour tout le monde"`
24
+
-`number`correspond aux nombres comme`42`. En JavaScript, tout est un `number` - il n'existe aucun équivalent à un `int`ou`float`. Tout est simplement un`number`
25
+
-`boolean`représente les deux valeurs `true`et`false`
26
26
27
-
> The type names `String`, `Number`, and`Boolean` (starting with capital letters) are legal, but refer to some special built-in types that will very rarely appear in your code. _Always_ use`string`, `number`, or`boolean`for types.
27
+
> Les noms de types `String`, `Number`, et`Boolean` (avec une première lettre majuscule) existent, mais réfèrent à des types spéciaux qui vont très rarement apparaître dans votre code. Utilisez _toujours_`string`, `number`, ou`boolean`pour annoter vos types.
28
28
29
-
## Arrays
29
+
## Tableaux
30
30
31
-
To specify the type of an array like `[1, 2, 3]`, you can use the syntax`number[]`; this syntax works for any type (e.g. `string[]`is an array of strings, and so on).
32
-
You may also see this written as `Array<number>`, which means the same thing.
33
-
We'll learn more about the syntax `T<U>`when we cover _generics_.
31
+
Pour préciser le type d'un tableau comme `[1, 2, 3]`, vous pouvez utiliser la syntaxe`number[]`; cette syntaxe peut être utilisée pour d'autres types (par exemple, `string[]`est un tableau de chaînes de caractères, et ainsi de suite).
32
+
Vous pourriez aussi voir la notation `Array<number>`, qui signifie la même chose.
33
+
Nous en apprendrons plus sur la notation `T<U>`quand on couvrira les _types génériques_.
34
34
35
-
> Note that `[number]`is a different thing; refer to the section on [Tuples](/docs/handbook/2/objects.html#tuple-types).
35
+
> À noter que la notation `[number]`est différente; référez-vous à la section sur les [Tuples](/fr/docs/handbook/2/objects.html#tuple-types).
36
36
37
37
38
38
## `any`
39
39
40
-
TypeScript also has a special type, `any`, that you can use whenever you don't want a particular value to cause typechecking errors.
40
+
TypeScript possède également un type spécial, `any`, que vous pouvez utiliser dès que vous souhaitez qu'une valeur particulière ne cause pas d'erreurs à la vérification de types.
41
41
42
-
When a value is of type `any`, you can access any properties of it (which will in turn be of type `any`), call it like a function, assign it to (or from) a value of any type, or pretty much anything else that's syntactically legal:
42
+
Quand une valeur est de type `any`, vous pouvez accéder à toutes ses propriétés (qui seront, à leur tour, de type `any`), l'appeler comme une fonction, l'assigner à (ou depuis) une valeur de tous types, ainsi que tout ce qui pourrait être légal :
43
43
44
44
```ts twoslash
45
45
let obj:any= { x: 0 };
46
-
//None of the following lines of code will throw compiler errors.
47
-
//Using `any` disables all further type checking, and it is assumed
48
-
//you know the environment better than TypeScript.
46
+
//Aucune de ces lignes ne va émettre d'erreur.
47
+
//Utiliser `any` désactive toute vérification de types, et TypeScript supposera
48
+
//que vous connaissez l'environnement mieux que lui.
49
49
obj.foo();
50
50
obj();
51
51
obj.bar=100;
52
52
obj="hello";
53
53
const n:number=obj;
54
54
```
55
55
56
-
The `any`type is useful when you don't want to write out a long type just to convince TypeScript that a particular line of code is okay.
56
+
Le type `any`est utile quand vous ne voulez pas écrire une très grande ligne de typage rien que pour convaincre TypeScript qu'une certaine ligne de code est valide.
57
57
58
58
### `noImplicitAny`
59
59
60
-
When you don't specify a type, and TypeScript can't infer it from context, the compiler will typically default to`any`.
60
+
Si vous ne précisez pas de type, et TypeScript ne peut pas l'inférer du contexte, le compilateur va adopter le type`any`.
61
61
62
-
You usually want to avoid this, though, because `any` isn't type-checked.
63
-
Use the compiler flag [`noImplicitAny`](/tsconfig#noImplicitAny)to flag any implicit `any` as an error.
62
+
Vous voudrez peut-être l'éviter, cependant, parce qu'il n'y a aucune vérification de types sur `any`.
63
+
Utilisez l'option [`noImplicitAny`](/tsconfig#noImplicitAny)pour relever toutes ces situations en tant qu'erreurs.
64
64
65
-
## Type Annotations on Variables
65
+
## Annotations de Types sur des Variables
66
66
67
-
When you declare a variable using`const`, `var`, or`let`, you can optionally add a type annotation to explicitly specify the type of the variable:
67
+
Quand vous déclarez une variable avec`const`, `var`, ou`let`, vous pouvez optionnellement ajouter une annotation de type pour préciser explicitement le type de la variable:
68
68
69
69
```ts twoslash
70
70
let myName:string="Alice";
71
-
// ^^^^^^^^ Type annotation
71
+
// ^^^^^^^^ Annotation de type
72
72
```
73
73
74
-
> TypeScript doesn't use "types on the left"-style declarations like`int x = 0;`
75
-
> Type annotations will always go _after_ the thing being typed.
74
+
> TypeScript n'utilise pas de déclarations du style "types vers la gauche", comme`int x = 0;`
75
+
> Les annotations de types iront toujours _après_ la variable qui est typée.
76
76
77
-
In most cases, though, this isn't needed.
78
-
Wherever possible, TypeScript tries to automatically _infer_ the types in your code.
79
-
For example, the type of a variable is inferred based on the type of its initializer:
77
+
Par contre, la plupart des cas, cela n'est pas nécessaire.
78
+
Dès que possible, TypeScript essaiera d'_inférer_ automatiquement les types de votre code.
79
+
Par exemple, le type d'une variable est inféré en fonction du type de son initialiseur :
80
80
81
81
```ts twoslash
82
-
//No type annotation needed -- 'myName' inferred as type 'string'
82
+
//Pas d'annotation nécessaire -- inférer 'myName' montre que la variable est de type 'string'
83
83
let myName ="Alice";
84
84
```
85
85
86
-
For the most part you don't need to explicitly learn the rules of inference.
87
-
If you're starting out, try using fewer type annotations than you think - you might be surprised how few you need for TypeScript to fully understand what's going on.
86
+
La plupart du temps, vous n'aurez pas besoin d'apprendre les règles d'inférence.
87
+
Si vous débutez avec TypeScript, essayez d'utiliser moins d'annotations que vous pensez nécessaire - vous verrez que TypeScript saura comprendre vos intentions bien plus souvent que vous ne le pensez.
88
88
89
-
## Functions
89
+
## Fonctions
90
90
91
-
Functions are the primary means of passing data around in JavaScript.
92
-
TypeScript allows you to specify the types of both the input and output values of functions.
91
+
Les fonctions sont les moyens principaux de transfert de données en JavaScript.
92
+
TypeScript vous permet d'annoter précisément les types de données en entrée et en sortie de ces fonctions.
93
93
94
-
### Parameter Type Annotations
94
+
### Annotations de Types de Paramètres
95
95
96
-
When you declare a function, you can add type annotations after each parameter to declare what types of parameters the function accepts.
97
-
Parameter type annotations go after the parameter name:
96
+
Quand vous déclarez une fonction, vous pouvez ajouter des annotations de types après chaque paramètre pour déclarer quel(s) type(s) la fonction accepte.
97
+
Les annotations de types de paramètres iront après le nom des paramètres :
When a parameter has a type annotation, arguments to that function will be checked:
107
+
Dès qu'un paramètre est annoté, les arguments de cette fonction seront vérifiés :
108
108
109
109
```ts twoslash
110
110
// @errors: 2345
111
111
declarefunction greet(name:string):void;
112
112
// ---cut---
113
-
//Would be a runtime error if executed!
113
+
//Ceci provoquera une erreur à l'exécution
114
114
greet(42);
115
115
```
116
116
117
-
> Even if you don't have type annotations on your parameters, TypeScript will still check that you passed the right number of arguments.
117
+
> Même si vous n'avez pas d'annotation sur vos paramètres, TypeScript vérifiera également que vous passez le nombre correct d'arguments lors de l'appel de la fonction.
118
118
119
-
### Return Type Annotations
119
+
### Annotations de Type de Retour
120
120
121
-
You can also add return type annotations.
122
-
Return type annotations appear after the parameter list:
121
+
Vous pouvez également ajouter des annotations de types de retour.
122
+
Ces annotations apparaissent après les listes de paramètres :
123
123
124
124
```ts twoslash
125
125
function getFavoriteNumber():number {
@@ -128,97 +128,97 @@ function getFavoriteNumber(): number {
128
128
}
129
129
```
130
130
131
-
Much like variable type annotations, you usually don't need a return type annotation because TypeScript will infer the function's return type based on its `return` statements.
132
-
The type annotation in the above example doesn't change anything.
133
-
Some codebases will explicitly specify a return type for documentation purposes, to prevent accidental changes, or just for personal preference.
131
+
Tout comme les annotations de variables, vous n'avez généralement pas besoin d'en préciser tout le temps, parce que TypeScript inférera les types de retour d'une fonction en se basant sur les valeurs retournées.
132
+
Dans l'exemple ci-dessus, le `: number` ne changera rien.
133
+
Certaines bases de code précisent explicitement le type de retour à des fins de documentation, pour éviter les changements accidentels, ou simplement par préférence personnelle.
134
134
135
-
### Anonymous Functions
135
+
### Fonctions anonymes
136
136
137
-
Anonymous functions are a little bit different from function declarations.
138
-
When a function appears in a place where TypeScript can determine how it's going to be called, the parameters of that function are automatically given types.
137
+
Les fonctions anonymes sont légèrement différentes des déclarations de fonctions.
138
+
Quand une fonction apparaît à un endroit où TypeScript peut déterminer comment elle sera appelée, les paramètres de cette fonction sont automatiquement typés.
139
139
140
-
Here's an example:
140
+
Voici un exemple :
141
141
142
142
```ts twoslash
143
143
// @errors: 2551
144
-
//No type annotations here, but TypeScript can spot the bug
144
+
//Pas d'annotations, mais TypeScript sera capable de repérer les bugs
145
145
const names = ["Alice", "Bob", "Eve"];
146
146
147
-
//Contextual typing for function
147
+
//Typage contextuel pour des fonctions
148
148
names.forEach(function (s) {
149
149
console.log(s.toUppercase());
150
150
});
151
151
152
-
//Contextual typing also applies to arrow functions
152
+
//Le typage contextuel peut aussi s'appliquer aux fonctions fléchées
153
153
names.forEach((s) => {
154
154
console.log(s.toUppercase());
155
155
});
156
156
```
157
157
158
-
Even though the parameter `s`didn't have a type annotation, TypeScript used the types of the `forEach` function, along with the inferred type of the array, to determine the type `s` will have.
158
+
Même si `s`n'a pas d'annotation de type, TypeScript a utilisé le type de la fonction `forEach`, ainsi que le type inféré du tableau (qui est, donc, `string[]`), pour déterminer le type de `s`.
159
159
160
-
This process is called _contextual typing_ because the _context_ that the function occurred within informs what type it should have.
160
+
Ce procédé s'appelle _typage contextuel_ car le _contexte_ de cette fonction a permis de préciser quel type le paramètre doit avoir.
161
161
162
-
Similar to the inference rules, you don't need to explicitly learn how this happens, but understanding that it _does_ happen can help you notice when type annotations aren't needed.
163
-
Later, we'll see more examples of how the context that a value occurs in can affect its type.
162
+
De la même façon que les règles de l'inférence, vous n'avez pas besoin d'apprendre _exactement_ comment ça se passe, mais comprendre que cela _peut_ se produire peut vous aider à remarquer les endroits où une annotation n'est pas nécessaire.
163
+
Nous verrons plus tard des exemples où le contexte d'une variable peut lui changer son type.
164
164
165
-
## Object Types
165
+
## Types Objets
166
166
167
-
Apart from primitives, the most common sort of type you'll encounter is an _object type_.
168
-
This refers to any JavaScript value with properties, which is almost all of them!
169
-
To define an object type, we simply list its properties and their types.
167
+
À part les primitives, le type le plus commun que vous rencontrerez est le _type objet_.
168
+
Il fait référence à toute valeur JavaScript qui peut avoir une propriété, c'est-à-dire _quasiment toutes_!
169
+
Pour définir un type objet, il suffit de lister ses propriétés et leurs types.
170
170
171
-
For example, here's a function that takes a point-like object:
171
+
Par exemple, voici une fonction qui prend en paramètre un objet qui ressemble à un point à coordonnées :
172
172
173
173
```ts twoslash
174
-
//The parameter's type annotation is an object type
174
+
//L'annotation de type du paramètre est un objet
175
175
function printCoord(pt: { x:number; y:number }) {
176
176
// ^^^^^^^^^^^^^^^^^^^^^^^^
177
-
console.log("The coordinate's x value is"+pt.x);
178
-
console.log("The coordinate's y value is"+pt.y);
177
+
console.log("La valeur x de la coordonnée est"+pt.x);
178
+
console.log("La valeur y de la coordonnée est"+pt.y);
179
179
}
180
180
printCoord({ x: 3, y: 7 });
181
181
```
182
182
183
-
Here, we annotated the parameter with a type with two properties - `x`and`y` - which are both of type `number`.
184
-
You can use`,`or`;`to separate the properties, and the last separator is optional either way.
183
+
Ici, nous avons annoté un paramètre avec un type à deux propriétés - `x`et`y` - qui sont toutes les deux de type `number`.
184
+
Vous pouvez utiliser`,`ou`;`pour séparer les propriétés, le dernier séparateur étant optionnel.
185
185
186
-
The type part of each property is also optional.
187
-
If you don't specify a type, it will be assumed to be`any`.
186
+
Il n'est également pas nécessaire de préciser le type d'une propriété.
187
+
Dans ce cas, TypeScript supposera que la propriété en question est de type`any`.
188
188
189
-
### Optional Properties
189
+
### Propriétés facultatives
190
190
191
-
Object types can also specify that some or all of their properties are _optional_.
192
-
To do this, add a `?`after the property name:
191
+
Les types objet peuvent aussi préciser que certaines ou toutes leurs propriétés sont _facultatives_.
192
+
Pour ce faire, vous devrez ajouter un `?`après le nom de propriété :
193
193
194
194
```ts twoslash
195
195
function printName(obj: { first:string; last?:string }) {
196
196
// ...
197
197
}
198
-
//Both OK
198
+
//Les deux sont OK
199
199
printName({ first: "Bob" });
200
200
printName({ first: "Alice", last: "Alisson" });
201
201
```
202
202
203
-
In JavaScript, if you access a property that doesn't exist, you'll get the value `undefined`rather than a runtime error.
204
-
Because of this, when you _read_ from an optional property, you'll have to check for `undefined`before using it.
203
+
En JavaScript, accéder à une propriété qui n'existe pas retourne `undefined`au lieu d'une erreur.
204
+
De ce fait, quand vous _lisez_ une propriété facultative, vous devrez vérifier qu'elle n'est pas `undefined`avant de continuer :
205
205
206
206
```ts twoslash
207
207
// @errors: 2532
208
208
function printName(obj: { first:string; last?:string }) {
209
-
//Error - might crash if 'obj.last' wasn't provided!
209
+
//Erreur - peut provoquer un crash si `obj.last` est undefined !
210
210
console.log(obj.last.toUpperCase());
211
211
if (obj.last!==undefined) {
212
212
// OK
213
213
console.log(obj.last.toUpperCase());
214
214
}
215
215
216
-
//A safe alternative using modern JavaScript syntax:
216
+
//Une alternative plus sûre avec du JavaScript moderne :
217
217
console.log(obj.last?.toUpperCase());
218
218
}
219
219
```
220
220
221
-
## Union Types
221
+
## Types Union
222
222
223
223
TypeScript's type system allows you to build new types out of existing ones using a large variety of operators.
224
224
Now that we know how to write a few types, it's time to start _combining_ them in interesting ways.
0 commit comments