Skip to content

Commit a414bbb

Browse files
author
mk360
committed
complete TS for OOPers in french
1 parent 77b18e6 commit a414bbb

File tree

1 file changed

+42
-42
lines changed

1 file changed

+42
-42
lines changed

docs/documentation/fr/get-started/TS for OOPers.md

Lines changed: 42 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: TypeScript pour les Développeurs Java/C#
33
short: TS pour les Développeurs Java/C#
44
layout: docs
55
permalink: /docs/handbook/typescript-in-5-minutes-oop.html
6-
oneline: Apprenez TypeScript si vous avez un vécu avec les langages orientés objet
6+
oneline: Apprenez TypeScript si vous avez de l'expérience avec les langages orientés objet
77
---
88

99
TypeScript est un choix populaire pour les développeurs habitués aux autres langages à typage statique, comme le C# et le Java.
@@ -71,16 +71,16 @@ Parce que les types ne sont que des ensembles, une valeur peut appartenir à _p
7171
Une fois que vous pensez aux types en tant qu'ensembles, certaines opérations deviennent naturelles.
7272
Par exemple, en C#, il est bizarre de transmettre une valeur qui est _soit_ un `string` ou `int`, parce qu'il n'existe aucun type les représentant tous les deux.
7373

74-
In TypeScript, ce procédé devient naturel quand vous pensez aux types en tant qu'ensembles.
74+
En TypeScript, ce procédé devient naturel quand vous pensez aux types en tant qu'ensembles.
7575
Comment décrire une valeur qui appartient, soit à l'ensemble des `string`, soit à celui des `number` ?
76-
Elle appartient simplement à l' _union_ de ces valeurs : `string | number`.
76+
Elle appartient simplement à l'_union_ de ces ensembles : `string | number`.
7777

78-
TypeScript provides a number of mechanisms to work with types in a set-theoretic way, and you'll find them more intuitive if you think of types as sets.
78+
TypeScript fournit un certain nombre de mécanismes pour travailler avec les types de façons similaires à la théorie des ensembles, et ces façons seront plus intuitives si on pense aux types en tant qu'ensembles.
7979

80-
### Erased Structural Types
80+
### Types Structurels Effacés
8181

82-
In TypeScript, objects are _not_ of a single exact type.
83-
For example, if we construct an object that satisfies an interface, we can use that object where that interface is expected even though there was no declarative relationship between the two.
82+
En TypeScript, les objets n'ont _pas_ de seul et unique type.
83+
Par exemple, si nous créons un objet qui correspond à une interface, nous pouvons utiliser cet objet là où l'interface est attendue même si aucune relation de déclaration n'existait entre les deux.
8484

8585
```ts twoslash
8686
interface Pointlike {
@@ -109,70 +109,70 @@ logPoint(obj);
109109
logName(obj);
110110
```
111111

112-
TypeScript's type system is _structural_, not nominal: We can use `obj` as a `Pointlike` because it has `x` and `y` properties that are both numbers.
113-
The relationships between types are determined by the properties they contain, not whether they were declared with some particular relationship.
112+
Le système de types de TypeScript est _structurel_, et non nominal : nous pouvons utiliser `obj` en tant que `Pointlike` parce qu'`obj` a les propriétés `x` et `y` qui sont toutes les deux des nombres.
113+
Les relations entre types sont déterminées par les propriétés qu'ils contiennent, et non pas avec une relation de déclaration entre eux.
114114

115-
TypeScript's type system is also _not reified_: There's nothing at runtime that will tell us that `obj` is `Pointlike`.
116-
In fact, the `Pointlike` type is not present _in any form_ at runtime.
115+
Le système de types de TypeScript n'est également _pas réifié_: rien ne va pouvoir nous dire qu'`obj` est un `Pointlike`, lors de l'exécution.
116+
D'ailleurs, le type `Pointlike` n'est _même pas présent_ lors de l'exécution.
117117

118-
Going back to the idea of _types as sets_, we can think of `obj` as being a member of both the `Pointlike` set of values and the `Named` set of values.
118+
Si nous revenons à notre façon de réfléchir aux types _en tant qu'ensemble_, nous pouvons dire qu'`obj` est membre de l'ensemble `Pointlike`, ainsi que de l'ensemble `Named`.
119119

120-
### Consequences of Structural Typing
120+
### Conséquences du typage structurel
121121

122-
OOP programmers are often surprised by two particular aspects of structural typing.
122+
Deux aspects particuliers de ce système surprennent souvent les développeurs POO.
123123

124-
#### Empty Types
124+
#### Types vides
125125

126-
The first is that the _empty type_ seems to defy expectation:
126+
Le premier est que le _type vide_ a l'air d'agir de manière impromptue :
127127

128128
```ts twoslash
129129
class Empty {}
130130

131131
function fn(arg: Empty) {
132-
// do something?
132+
// fais quelque chose ?
133133
}
134134

135-
// No error, but this isn't an 'Empty' ?
135+
// Pas d'erreur, mais ce n'est pas un Empty ?
136136
fn({ k: 10 });
137137
```
138138

139-
TypeScript determines if the call to `fn` here is valid by seeing if the provided argument is a valid `Empty`.
140-
It does so by examining the _structure_ of `{ k: 10 }` and `class Empty { }`.
141-
We can see that `{ k: 10 }` has _all_ of the properties that `Empty` does, because `Empty` has no properties.
142-
Therefore, this is a valid call!
139+
TypeScript détermine si l'appel à `fn` est valide en déterminant si l'argument fourni est un `Empty` valide.
140+
Cela est accompli en examinant la _structure_ de `{ k: 10 }` et `class Empty { }`.
141+
Nous pouvons voir que `{ k: 10 }` a _toutes_ les propriétés d'`Empty` vu qu'`Empty` n'a aucune propriété.
142+
C'est donc un appel valide !
143143

144-
This may seem surprising, but it's ultimately a very similar relationship to one enforced in nominal OOP languages.
145-
A subclass cannot _remove_ a property of its base class, because doing so would destroy the natural subtype relationship between the derived class and its base.
146-
Structural type systems simply identify this relationship implicitly by describing subtypes in terms of having properties of compatible types.
144+
Cela peut paraître surprenant, mais c'est au final une relation très similaire à celle respectées dans les langages POO nominaux.
145+
Une sous-classe ne peut pas _retirer_ une propriété de sa classe-mère, parce que faire cela détruirait la relation de sous-type naturelle existant entre la sous-classe et sa classe-mère.
146+
Les systèmes de type structurels identifient cette relation en décrivant les sous-types de façon à avoir des propriétés à types compatibles.
147147

148-
#### Identical Types
148+
#### Types identiques
149149

150-
Another frequent source of surprise comes with identical types:
150+
Les types identiques sont une autre source fréquente de surprises :
151151

152152
```ts
153153
class Car {
154154
drive() {
155-
// hit the gas
155+
// accélérer
156156
}
157157
}
158158
class Golfer {
159159
drive() {
160-
// hit the ball far
160+
// frapper la balle fort
161161
}
162162
}
163163

164-
// No error?
164+
// Pas d'erreur ?
165165
let w: Car = new Golfer();
166166
```
167167

168-
Again, this isn't an error because the _structures_ of these classes are the same.
169-
While this may seem like a potential source of confusion, in practice, identical classes that shouldn't be related are not common.
168+
Encore une fois, ceci n'est pas une erreur parce que les _structures_ de ces classes sont les mêmes.
169+
Cela peut paraître comme une source de confusion, mais en pratique, les classes identiques n'ayant aucun rapport ne sont pas communes.
170170

171-
We'll learn more about how classes relate to each other in the Classes chapter.
171+
Nous apprendrons plus sur comment les classes sont liées l'une à l'autre dans leur chapitre.
172172

173-
### Reflection
173+
### Réflexivité
174174

175-
OOP programmers are accustomed to being able to query the type of any value, even a generic one:
175+
Les développeurs POO ont l'habitude de pouvoir demander le type de n'importe quelle valeur, même générique :
176176

177177
```csharp
178178
// C#
@@ -181,14 +181,14 @@ static void LogType<T>() {
181181
}
182182
```
183183

184-
Because TypeScript's type system is fully erased, information about e.g. the instantiation of a generic type parameter is not available at runtime.
184+
Mais parce que le système de types de TypeScript est complètement effacé, aucune information sur, par exemple, l'instanciation d'un type générique n'est disponible à l'exécution.
185185

186-
JavaScript does have some limited primitives like `typeof` and `instanceof`, but remember that these operators are still working on the values as they exist in the type-erased output code.
187-
For example, `typeof (new Car())` will be `"object"`, not `Car` or `"Car"`.
186+
Le JavaScript possède quelques opérateurs comme `typeof` et `instanceof`, mais souvenez-vous que ces opérateurs agissent sur les valeurs, tel qu'elles existent dans le code sans informations de types.
187+
Par exemple, `typeof (new Car())` va retourner `"object"`, et non `Car` ni `"Car"`.
188188

189-
## Next Steps
189+
## Prochaines étapes
190190

191-
This was a brief overview of the syntax and tools used in everyday TypeScript. From here, you can:
191+
C'était un bref résumé de la syntaxe et des outils régulièrement utilisés en TypeScript. À partir de là, vous pourrez :
192192

193-
- Read the full Handbook [from start to finish](/docs/handbook/intro.html) (30m)
194-
- Explore the [Playground examples](/play#show-examples)
193+
- Lire le Manuel [du début à la fin](/docs/handbook/intro.html) (30m)
194+
- Explorer les [exemples du bac à sable](/play#show-examples)

0 commit comments

Comments
 (0)