Skip to content

Commit 21208ae

Browse files
committed
copy(typescript): final review pass
1 parent 20bb975 commit 21208ae

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/content/learn/typescript.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ export default App = AppTSX;
7979

8080
<Note>
8181

82-
Les bacs à sable de cette documentation comprennent le code TypeScript, mais n'exécutent pas la vérification de types. Ça signifie que vous pouvez modifier les bacs à sable TypeScript pour apprendre, mais vous ne verrez aucune erreur ni aucun avertissement liés au typage. Pour bénéficier de la vérification de types, vous opuvez utiliser le [*TypeScript Playground*](https://www.typescriptlang.org/play) ou un bac à sable en ligne aux fonctionnalités plus riches.
82+
Les bacs à sable de cette documentation comprennent le code TypeScript, mais n'exécutent pas la vérification de types. Ça signifie que vous pouvez modifier les bacs à sable TypeScript pour apprendre, mais vous ne verrez aucune erreur ni aucun avertissement liés au typage. Pour bénéficier de la vérification de types, vous pouvez utiliser le [*TypeScript Playground*](https://www.typescriptlang.org/play) ou un bac à sable en ligne aux fonctionnalités plus riches.
8383

8484
</Note>
8585

@@ -123,7 +123,7 @@ Le type qui décrit les props de votre composant peut être aussi simple ou comp
123123

124124
## Exemples de typage avec les Hooks {/*example-hooks*/}
125125

126-
Les définitions de types dans `@types/react` incluent le typage des Hooks fournis par React, que vous pouvez donc utiliser sans configuration supplémentaire. Ces types sont conçus pour s'appuyer sur le code que vous écrviez, vous bénéficierez donc la plupart du temps de [l'inférence de type](https://www.typescriptlang.org/docs/handbook/type-inference.html), de sorte que vous ne devriez pas avoir à leur fournir des types sur-mesure.
126+
Les définitions de types dans `@types/react` incluent le typage des Hooks fournis par React, que vous pouvez donc utiliser sans configuration supplémentaire. Ces types sont conçus pour s'appuyer sur le code que vous écrivez, vous bénéficierez donc la plupart du temps de [l'inférence de type](https://www.typescriptlang.org/docs/handbook/type-inference.html), de sorte que vous ne devriez pas avoir à leur fournir des types sur-mesure.
127127

128128
Ceci étant dit, voyons quelques exemples de fourniture explicite de types à des Hooks.
129129

@@ -143,7 +143,7 @@ const [enabled, setEnabled] = useState(false);
143143
const [enabled, setEnabled] = useState<boolean>(false);
144144
```
145145

146-
Dans ce cas précis ça n'a guère d'intérêt, mais pour une union par exemple, vous aurez besoin d'un typage explicite. Par exemple, le `status` ci-dessous a un jeu de valeurs restreint :
146+
Dans ce cas précis ça n'avait guère d'intérêt, mais pour une union par exemple, vous aurez besoin d'un typage explicite. Par exemple, le `status` ci-dessous a un jeu de valeurs restreint :
147147

148148
```ts
149149
type Status = "idle" | "loading" | "success" | "error";
@@ -226,7 +226,7 @@ Nous utilisons ici TypeScript à certains endroits stratégiques :
226226
- `const initialState: State` fournit un type pour l'état initial, qui est aussi le type qu'utilisera `useReducer` par défaut.
227227
- `stateReducer(state: State, action: CounterAction): State` définit les types des arguments et de la valeur de retour pour la fonction de réduction.
228228

229-
Une alternative plus explicite consisterait à définir le type d'`initialState` en passant un paramètre de type à `useReducer` :
229+
Pour un style plus explicite, vous pouvez plutôt définir le type d'`initialState` en passant un paramètre de type à `useReducer` :
230230

231231
```ts
232232
import { stateReducer, State } from './your-reducer-implementation';
@@ -282,11 +282,11 @@ export default App = AppTSX;
282282

283283
</Sandpack>
284284

285-
Cette technique fonctionne lorsque vous avez une valeur par défaut pertinente — mais il arrive que ça ne soit pas le cas, et que vous utilisez alors `null` comme valeur par défaut. Le souci, c'est que pour satisfaire le système de typage, vous allez devoir explicitement passer un paramètre de type `ContextShape | null` à `createContext`.
285+
Cette technique fonctionne lorsque vous avez une valeur par défaut pertinente — mais il arrive que ça ne soit pas le cas, et que vous utilisiez alors `null` comme valeur par défaut. Le souci, c'est que pour satisfaire le système de typage, vous allez devoir explicitement passer à `createContext` un paramètre de type `ContextShape | null`.
286286

287287
Ça va complexifier votre code en vous forçant à éliminer le `| null` du type pour les consommateurs du contexte. Nous vous conseillons d'incorporer un *type guard* au sein de votre Hook personnalisé pour vérifier que la valeur existe bien, et lever une exception dans le cas contraire :
288288

289-
```js {5, 16-20}
289+
```tsx {5, 16-20}
290290
import { createContext, useContext, useState, useMemo } from 'react';
291291

292292
// C'est un exemple simplifié, imaginez quelque chose de plus riche
@@ -363,15 +363,15 @@ export default function Form() {
363363
return (
364364
<>
365365
<input value={value} onChange={handleChange} />
366-
<p>Value: {value}</p>
366+
<p>Valeur : {value}</p>
367367
</>
368368
);
369369
}
370370
```
371371

372372
## Types utiles {/*useful-types*/}
373373

374-
Le module `@types/react` fournit un vaste ensemble de types ; une fois que vous serez à l'aise avec l'utilisation combinée de React et TypeScript, ça vaut le coup d'y jeter un coup d'œil. Vous les trouverez dans [le dossier de React sur DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts). Nous allons passer ici en revue les plus courants.
374+
Le module `@types/react` fournit un vaste ensemble de types ; une fois que vous serez à l'aise avec l'utilisation combinée de React et TypeScript, ça vaut le coup d'explorer son contenu. Vous le trouverez dans [le dossier de React sur DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/react/index.d.ts). Nous allons passer ici en revue les types les plus courants.
375375

376376
### Événements DOM {/*typing-dom-events*/}
377377

@@ -422,7 +422,7 @@ interface ModalRendererProps {
422422
}
423423
```
424424

425-
C'est là une définition très large des enants. La seconde utilise plutôt le type `React.ReactElement`, qui ne permet que les éléments JSX et non les nœuds primitifs tels que les chaînes de caractères ou les nombres :
425+
C'est là une définition très large pour les enfants. La seconde utilise plutôt le type `React.ReactElement`, qui ne permet que les éléments JSX et pas les nœuds primitifs tels que les chaînes de caractères ou les nombres :
426426

427427
```ts
428428
interface ModalRendererProps {

0 commit comments

Comments
 (0)