المهارات fp-ts-errors
📦

fp-ts-errors

آمن

Maîtriser la gestion des erreurs fp-ts en TypeScript

Arrêtez de vous battre avec le code spaghetti try/catch. Apprenez à gérer les erreurs comme des valeurs type-safe en utilisant fp-ts Either et TaskEither pour une gestion des erreurs prévisible et composable.

يدعم: Claude Codex Code(CC)
🥉 74 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "fp-ts-errors". Valider un formulaire d'inscription utilisateur avec un email invalide, un mot de passe trop court et un âge manquant

النتيجة المتوقعة:

Left(['Format d'email invalide', 'Le mot de passe doit contenir au moins 8 caractères', 'L'âge est requis']) - Les trois erreurs de validation retournées ensemble au lieu d'échouer sur la première

استخدام "fp-ts-errors". Enchaîner getUser(userId), getProduct(productId) et createOrder(user, product) où getUser retourne Left('User not found')

النتيجة المتوقعة:

Left('User not found') - La chaîne s'arrête à la première échec, les opérations suivantes ne sont jamais exécutées, et l'erreur se propage proprement

استخدام "fp-ts-errors". Récupérer les données utilisateur avec TaskEither, la requête réseau échoue avec une erreur de connexion

النتيجة المتوقعة:

Left({ code: 'NETWORK', message: 'Failed to connect to server' }) - Erreur structurée avec un code d'erreur pour le traitement programmatique et un message lisible pour l'affichage

التدقيق الأمني

آمن
v1 • 2/25/2026

This skill is educational documentation teaching fp-ts error handling patterns in TypeScript. The static analyzer produced 127 false positives by misidentifying Markdown code block backticks as shell commands. All network references are code examples demonstrating TaskEither usage, not executable code. No actual command execution, network calls, or system access exists in this skill.

1
الملفات التي تم فحصها
857
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
50
المجتمع
100
الأمان
91
الامتثال للمواصفات

ماذا يمكنك بناءه

Validation de formulaire avec accumulation d'erreurs

Validez les formulaires de saisie utilisateur et collectez toutes les erreurs de validation en une seule fois au lieu d'échouer à la première erreur.

Pipeline de gestion des erreurs d'API

Construisez des couches API robustes qui gèrent les erreurs réseau, les codes d'état HTTP et les échecs de parsing JSON avec des résultats d'erreur typés.

Chaînes d'opérations de base de données

Enchaînez plusieurs opérations de base de données où tout échec retourne une erreur structurée sans lancer d'exceptions.

جرّب هذه الموجهات

Pattern Either basique
Aidez-moi à convertir cette fonction pour utiliser fp-ts Either au lieu de lancer des erreurs : [collez la fonction]. Montrez comment gérer le cas d'erreur avec fold.
Enchaîner plusieurs opérations
J'ai besoin d'enchaîner ces trois opérations : getUser, validatePermissions et createResource. Chacune peut échouer avec différents types d'erreurs. Montrez-moi comment utiliser chainW pour les combiner avec fp-ts Either.
Validation de formulaire avec toutes les erreurs
Créez un validateur de formulaire utilisant fp-ts qui valide les champs email, mot de passe et âge. Utilisez le foncteur applicatif validation pour collecter TOUTES les erreurs en une seule fois, pas seulement la première.
Retry asynchrone avec TaskEither
Montrez-moi comment envelopper cet appel fetch avec TaskEither et ajouter une logique de retry avec backoff exponentiel. Gérez à la fois les erreurs réseau et les réponses HTTP non-200 avec des types d'erreurs structurés.

أفضل الممارسات

  • Enveloppez le code qui lance des exceptions aux frontières (API externes, E/S de fichiers, parsing JSON) et retournez Either en interne
  • Utilisez des types d'erreurs descriptifs (unions ou interfaces) au lieu de chaînes simples pour une meilleure sécurité de type
  • Appliquez TaskEither pour les opérations asynchrones afin de maintenir l'évaluation paresseuse et éviter l'exécution prématurée

تجنب

  • Appeler fold trop tôt dans la chaîne - gérez les erreurs à la fin, pas après chaque étape
  • Mélanger Either avec des exceptions lancées - engagez-vous envers une stratégie de gestion d'erreurs de manière cohérente
  • Utiliser Left pour le flux de contrôle attendu comme 'non trouvé' - réservez les erreurs pour les cas réellement exceptionnels

الأسئلة المتكررة

Quand dois-je utiliser Either versus TaskEither ?
Utilisez Either pour les opérations synchrones qui peuvent échouer. Utilisez TaskEither pour les opérations asynchrones (Promises) qui peuvent échouer. TaskEither est paresseux et retourne une fonction qui produit Promise<Either<E, A>>.
Comment convertir du code try/catch existant en fp-ts ?
Enveloppez le code qui lance des exceptions avec E.tryCatch pour le code synchrone ou TE.tryCatch pour le code asynchrone. Fournissez une fonction onError pour transformer les exceptions capturées dans votre type d'erreur.
Quelle est la différence entre chain et chainW ?
chain exige que les deux types Either aient le même type d'erreur. chainW (plus large) union automatiquement différents types d'erreur, utile lors de l'enchaînement d'opérations avec différents types d'erreurs.
Comment récupérer la valeur d'un Either ?
Utilisez fold pour gérer les deux cas explicitement, getOrElse pour fournir une valeur par défaut pour Left, ou unsafeGetRight seulement quand vous êtes certain que c'est Right. Évitez unsafeGetRight en production.
Puis-je utiliser fp-ts avec mon code existant basé sur Promise ?
Oui. Utilisez TE.tryCatch pour envelopper les Promises, et utilisez toPromise ou exécutez la fonction TaskEither pour convertir en Promise quand nécessaire pour les API externes.
Comment collecter plusieurs erreurs de validation au lieu d'échouer rapidement ?
Utilisez sequenceS avec getApplicativeValidation et un Semigroup pour votre type d'erreur. Cela combine toutes les validations et accumule les erreurs en utilisant l'opération concat du Semigroup.

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md