Développeurs

Explication erreur TypeScript obscure

Une erreur TypeScript à rallonge de 40 lignes, tu la comprends en 30 secondes. Diagnostic clair en FR, cause exacte, deux fix classés par risque, snippet corrigé.

Vérifié le 15 août 2026Grade AVoir le métier

Prendre ce skill

Un fichier texte, rien à installer. Vous le déposez dans votre IA comme une pièce jointe. La première moitié est ouverte, la suite arrive avec l'accès complet.

Rien à brancher

Ce skill n'a besoin d'aucun de vos outils. Vous lui donnez le contexte, il rend son livrable.

Ce qu'il fait

TypeScript strict est un cadeau, sauf quand le compilateur crache une erreur type TS2769 sur une union discriminante avec des generics conditionnels et 40 lignes de type verbeux illisibles. Ce skill prend ton message d'erreur brut (copié du terminal ou du IDE), le fichier concerné et les types autour, et produit une note d'explication : ce que l'erreur veut vraiment dire en français, où est la cause exacte (surtout pas 'quelque part dans le fichier'), pourquoi TS refuse ce que tu essaies de faire, deux options de fix classées par risque (safe vs opportuniste), et le snippet corrigé à coller. Le skill refuse net toute solution `as any`, `@ts-ignore`, `@ts-expect-error` sans commentaire justifiant, ou downgrade du strict mode : ce sont des dettes techniques déguisées en fix.

  • Décrypte les codes TS2322, TS2345, TS2769, TS2589
  • Cause exacte pointée, pas 'quelque part'
  • Deux fix classés par risque, snippet corrigé
  • Refuse any, ts-ignore et downgrade strict
  • Aligné TypeScript 5.x et strictNullChecks

Aujourd'hui

Le dev colle son erreur TS2769 de 40 lignes sur Stack Overflow, trouve une réponse de 2019 en pages router Next 12 qui suggère `as any`, applique, ça compile, il push, deux semaines plus tard un bug prod avec un null qui traverse la fonction sans être vérifié. Root cause perdue, dette technique cachée dans le `as any`.

Avec le skill

Note d'explication en 12 lignes. Diagnostic : TS2769 sur `useForm<Schema>` parce que ton `defaultValues` a un champ optionnel `email?: string` alors que ton `zodResolver(schema)` produit un type où `email` est obligatoire après `.default('')`. Fix safe : ajuster le type `Schema` avec `z.infer<typeof schema>` au lieu du type manuel. Fix opportuniste : passer `defaultValues` en `Partial<Schema>` mais ça masque d'autres bugs. Snippet corrigé fourni.

Sert aussi àDirigeants PME

La première moitié du fichier

Voilà le fichier tel qu'il arrive dans votre IA : les étapes, les règles du métier, le format de sortie. La première moitié est ouverte, vous jugez l'écriture sur pièces. La suite ouvre avec l'accès complet.

explication-erreur-typescript-obscure.md
---
name: explication-erreur-typescript-obscure
description: "Décrypte un message d'erreur TypeScript obscur (TS2322, TS2345, TS2769, contraintes génériques, unions discriminantes, inférence conditionnelle) et produit une explication en français simple avec le diagnostic, la cause exacte, deux options de fix classées par risque, et le snippet corrigé à coller. À utiliser quand un dev bloque plus de 5 minutes sur une erreur TS incompréhensible et veut comprendre avant de contourner en any."
metadata:
  iaskills_title: "Explication erreur TypeScript obscure"
  metier_slug: dev
  metiers:
    - Dev
  secteur: "Tech & DSI"
  tier: free
  compatible:
    - claude-code
    - cowork
    - cursor
    - codex
  version: "1.0.0"
  author: "iaskills"
  editorial:
    pitch: "Une erreur TypeScript à rallonge de 40 lignes, tu la comprends en 30 secondes. Diagnostic clair en FR, cause exacte, deux fix classés par risque, snippet corrigé."
    long_description: "TypeScript strict est un cadeau, sauf quand le compilateur crache une erreur type TS2769 sur une union discriminante avec des generics conditionnels et 40 lignes de type verbeux illisibles. Ce skill prend ton message d'erreur brut (copié du terminal ou du IDE), le fichier concerné et les types autour, et produit une note d'explication : ce que l'erreur veut vraiment dire en français, où est la cause exacte (surtout pas 'quelque part dans le fichier'), pourquoi TS refuse ce que tu essaies de faire, deux options de fix classées par risque (safe vs opportuniste), et le snippet corrigé à coller. Le skill refuse net toute solution `as any`, `@ts-ignore`, `@ts-expect-error` sans commentaire justifiant, ou downgrade du strict mode : ce sont des dettes techniques déguisées en fix."
    bullets:
      - "Décrypte les codes TS2322, TS2345, TS2769, TS2589"
      - "Cause exacte pointée, pas 'quelque part'"
      - "Deux fix classés par risque, snippet corrigé"
      - "Refuse any, ts-ignore et downgrade strict"
      - "Aligné TypeScript 5.x et strictNullChecks"
    exemple_avant: "Le dev colle son erreur TS2769 de 40 lignes sur Stack Overflow, trouve une réponse de 2019 en pages router Next 12 qui suggère `as any`, applique, ça compile, il push, deux semaines plus tard un bug prod avec un null qui traverse la fonction sans être vérifié. Root cause perdue, dette technique cachée dans le `as any`."
    exemple_apres: "Note d'explication en 12 lignes. Diagnostic : TS2769 sur `useForm<Schema>` parce que ton `defaultValues` a un champ optionnel `email?: string` alors que ton `zodResolver(schema)` produit un type où `email` est obligatoire après `.default('')`. Fix safe : ajuster le type `Schema` avec `z.infer<typeof schema>` au lieu du type manuel. Fix opportuniste : passer `defaultValues` en `Partial<Schema>` mais ça masque d'autres bugs. Snippet corrigé fourni."
    recommended_metiers:
      - dirigeant-pme
    secteurs:
      - tech-dsi
      - startup-vc
      - marketing-commerce
      - medias-publishing
      - assurance-banque
      - secteur-public-associatif
    metiers_individuels:
      - dev-frontend
      - dev-backend
      - devops
      - cto
      - architecte-si
      - chef-de-projet-it
      - qa-engineer
      - mlops
      - data-scientist
---

# Explication erreur TypeScript obscure

## Quand utiliser ce skill

Déclencher quand un dev fullstack, frontend, backend, un tech lead ou un CTO bloque sur un message d'erreur TypeScript qu'il ne comprend pas au premier coup d'oeil : code TS2xxx à rallonge, union discriminante qui ne narrow pas, générique conditionnel qui refuse une assignation apparemment valide, inférence qui produit un type `never`, contrainte sur `keyof` qui explose. Le skill produit une explication en français simple et deux options de fix classées par risque.

Ne pas utiliser pour un bug logique en runtime (utiliser `debug-erreur-production-logs`), pour une revue de code globale (utiliser `code-review-pr-pragmatique`), pour choisir entre deux librairies, ni pour rédiger une doc d'ADR sur les choix TS du projet (utiliser `adr-decision-architecture`).

10 sections réservées

Déverrouiller votre accès complet

La suite de ce fichier contient les sections Ce que tu dois faire, Format de sortie attendu et Diagnostic, et 7 autres. Elles ouvrent avec le catalogue entier, une fois pour toutes.

Déverrouiller l'accès · 89 €

Ce qu'en disent les lecteurs

Pas encore d'avis sur ce skill

Personne ne l'a encore commenté publiquement. Vous l'avez utilisé ? Écrivez votre retour, il sera publié tel quel.

Déverrouillez l'accès complet

Des centaines de compétences, et toutes celles publiées après votre achat. Créées à la main, et de nouvelles chaque semaine.