@@ -277,6 +277,19 @@ Un fichier `.scss` enfoui dans l'arborescence ne vous garantit pas que les class
277
277
278
278
Préférez un choix judicieux de nom de classe racine pour un module donné et utilisez l'arborescence possible dans le fichier SCSS.
279
279
280
+ #### Les imports doivent être triés d'une certaine manière
281
+
282
+ ESLint est configuré pour trier automatiquement les imports en 4 groupes, chacun trié alphabétiquement :
283
+
284
+ - React
285
+ - Librairies externes
286
+ - Fichiers internes en chemin absolu
287
+ - Fichiers internes en chemin relatif
288
+
289
+ Chacun de ces groupes est séparé par une ligne vide.
290
+
291
+ ESLint déclenchera un avertissement si ces recommandations ne sont pas respectées.
292
+
280
293
#### Les liens des imports doivent être absolus
281
294
282
295
Vous devez utiliser le <u>chemin complet</u> pour tous vos imports.
@@ -287,9 +300,14 @@ Vous devez utiliser le <u>chemin complet</u> pour tous vos imports.
287
300
288
301
### import & export
289
302
290
- Nous recommendons d’utiliser les imports et export typés.
303
+ ESLint et Typescript sont configurés pour imposer l'` import type` pour un import de type.
304
+
305
+ Ceci permet de :
291
306
292
- Lorsque qu’un ` import ` ou un ` export` ne comporte que des types, l’indiquer par le mot clé ` type` .
307
+ - Automatiquement ajouter ` type` devant l'import quand on ajoute un type avec l'autocomplétion dans un fichier.
308
+ - Afficher 2 erreurs de chacun de ces packages demandant d'ajouter ` type` devant l'import si vous ne l'avez pas fait.
309
+
310
+ Lorsque qu’un ` import` ou un ` export` ne comporte que des types, il faut l’indiquer par le mot clé ` type` .
293
311
294
312
` ` ` typescript
295
313
export type { Direction , DirectionalTrackRange as TrackRange };
@@ -299,16 +317,25 @@ export type { Direction, DirectionalTrackRange as TrackRange };
299
317
import type { typedEntries , ValueOf } from " utils/types" ;
300
318
` ` `
301
319
320
+ Quand un import ne contient pas que des types, il sera agencé de cette manière, par ordre alphabétique.
321
+
322
+ ` ` ` typescript
323
+ import {
324
+ osrdEditoastApi ,
325
+ type ScenarioCreateForm ,
326
+ } from " common/api/osrdEditoastApi" ;
327
+ ` ` `
328
+
302
329
Cette pratique permet de :
303
330
304
331
- Améliorer les performances et le travail d’analyse du compilateur et du linter.
305
332
- Rendre ces déclarations plus lisibles, on voit clairement ce qu’on est en train d’importer.
306
333
- Éviter des cycles de dépendances :
307
334
308
- 
335
+ 
309
336
310
337
L’erreur disparaît avec le mot clé ` type`
311
338
312
- 
339
+ 
313
340
314
341
- Alléger le bundle final (tous les types disparaissent à la compilation).
0 commit comments