Skip to content

Commit 64d2ae6

Browse files
author
mk360
committed
everyday types -> union types
1 parent 223eab4 commit 64d2ae6

1 file changed

Lines changed: 86 additions & 86 deletions

File tree

docs/documentation/fr/handbook-v2/Everyday Types.md

Lines changed: 86 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -8,118 +8,118 @@ oneline: "Les primitives du langage."
88
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.
99
Ce n'est pas une liste exhaustive, et les futurs chapitres couvriront plus de manières de nommer et utiliser d'autres types.
1010

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.
1313

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.
1616

17-
## The primitives: `string`, `number`, and `boolean`
17+
## Les primitives: `string`, `number`, et `boolean`
1818

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 :
2222

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`
2626

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.
2828
29-
## Arrays
29+
## Tableaux
3030

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_.
3434

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).
3636
3737

3838
## `any`
3939

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.
4141

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 :
4343

4444
```ts twoslash
4545
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.
4949
obj.foo();
5050
obj();
5151
obj.bar = 100;
5252
obj = "hello";
5353
const n: number = obj;
5454
```
5555

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.
5757

5858
### `noImplicitAny`
5959

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`.
6161

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.
6464

65-
## Type Annotations on Variables
65+
## Annotations de Types sur des Variables
6666

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 :
6868

6969
```ts twoslash
7070
let myName: string = "Alice";
71-
// ^^^^^^^^ Type annotation
71+
// ^^^^^^^^ Annotation de type
7272
```
7373

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.
7676
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 :
8080

8181
```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'
8383
let myName = "Alice";
8484
```
8585

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.
8888

89-
## Functions
89+
## Fonctions
9090

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.
9393

94-
### Parameter Type Annotations
94+
### Annotations de Types de Paramètres
9595

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 :
9898

9999
```ts twoslash
100-
// Parameter type annotation
100+
// Annotation de type de paramètre
101101
function greet(name: string) {
102102
// ^^^^^^^^
103-
console.log("Hello, " + name.toUpperCase() + "!!");
103+
console.log("Bonjour, " + name.toUpperCase() + " !!");
104104
}
105105
```
106106

107-
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 :
108108

109109
```ts twoslash
110110
// @errors: 2345
111111
declare function greet(name: string): void;
112112
// ---cut---
113-
// Would be a runtime error if executed!
113+
// Ceci provoquera une erreur à l'exécution
114114
greet(42);
115115
```
116116

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.
118118
119-
### Return Type Annotations
119+
### Annotations de Type de Retour
120120

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 :
123123

124124
```ts twoslash
125125
function getFavoriteNumber(): number {
@@ -128,97 +128,97 @@ function getFavoriteNumber(): number {
128128
}
129129
```
130130

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.
134134

135-
### Anonymous Functions
135+
### Fonctions anonymes
136136

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.
139139

140-
Here's an example:
140+
Voici un exemple :
141141

142142
```ts twoslash
143143
// @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
145145
const names = ["Alice", "Bob", "Eve"];
146146

147-
// Contextual typing for function
147+
// Typage contextuel pour des fonctions
148148
names.forEach(function (s) {
149149
console.log(s.toUppercase());
150150
});
151151

152-
// Contextual typing also applies to arrow functions
152+
// Le typage contextuel peut aussi s'appliquer aux fonctions fléchées
153153
names.forEach((s) => {
154154
console.log(s.toUppercase());
155155
});
156156
```
157157

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`.
159159

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.
161161

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.
164164

165-
## Object Types
165+
## Types Objets
166166

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.
170170

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 :
172172

173173
```ts twoslash
174-
// The parameter's type annotation is an object type
174+
// L'annotation de type du paramètre est un objet
175175
function printCoord(pt: { x: number; y: number }) {
176176
// ^^^^^^^^^^^^^^^^^^^^^^^^
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);
179179
}
180180
printCoord({ x: 3, y: 7 });
181181
```
182182

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.
185185

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`.
188188

189-
### Optional Properties
189+
### Propriétés facultatives
190190

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é :
193193

194194
```ts twoslash
195195
function printName(obj: { first: string; last?: string }) {
196196
// ...
197197
}
198-
// Both OK
198+
// Les deux sont OK
199199
printName({ first: "Bob" });
200200
printName({ first: "Alice", last: "Alisson" });
201201
```
202202

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 :
205205

206206
```ts twoslash
207207
// @errors: 2532
208208
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 !
210210
console.log(obj.last.toUpperCase());
211211
if (obj.last !== undefined) {
212212
// OK
213213
console.log(obj.last.toUpperCase());
214214
}
215215

216-
// A safe alternative using modern JavaScript syntax:
216+
// Une alternative plus sûre avec du JavaScript moderne :
217217
console.log(obj.last?.toUpperCase());
218218
}
219219
```
220220

221-
## Union Types
221+
## Types Union
222222

223223
TypeScript's type system allows you to build new types out of existing ones using a large variety of operators.
224224
Now that we know how to write a few types, it's time to start _combining_ them in interesting ways.

0 commit comments

Comments
 (0)