1.7 KiB
1.7 KiB
Problème
Erreurs TypeScript exactOptionalPropertyTypes et avertissements ESLint max-lines-per-function sur les composants de sélection de séries (ArticleEditorForm, Profile, UserArticles).
Impacts
- Blocage du
tsc --noEmitet du lint, empêchant le déploiement. - Risque de régressions UI (sélection de série) si les props optionnelles sont mal typées.
Cause
Propagation de props optionnelles (seriesOptions, onSelectSeries, selectedSeriesId) sans inclure explicitement undefined dans les signatures avec exactOptionalPropertyTypes: true.
Root cause
Contrats de composants non alignés sur les exigences strictes TypeScript (exactOptionalPropertyTypes) et fonctions trop longues (>40 lignes) dans ArticleEditorForm et UserArticles.
Corrections
- Typage explicite des props optionnelles avec
| undefinedet propagation conditionnelle des props. - Refactoring des fonctions longues : extraction des handlers (SeriesSelect) et découpage de
createLayoutProps.
Modifications
components/ArticleEditor.tsx,components/ArticleEditorForm.tsx,components/ProfileArticlesSection.tsx,components/ProfileSeriesBlock.tsx,components/SeriesSection.tsx,components/SeriesList.tsx,components/SeriesCard.tsx,components/UserArticles.tsx,components/UserArticlesList.tsx,components/ProfileView.tsx.- Ajustements de typage et réduction des fonctions >40 lignes.
Modalités de déploiement
Pas d’action spécifique : lint et type-check passent (npm run lint, npm run type-check). Déployer via la pipeline habituelle.
Modalités d'analyse
- Vérifier
npm run lintetnpm run type-check. - Tester la sélection/filtrage de série dans l’éditeur d’articles et sur la page profil (navigation série).