microsoft / microsoft/TypeScript
Better error message when a module declaration is not found, but a module augmentation is?
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
🔎 Search Terms
declaration, augmentation
🕗 Version & Regression Information
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about module augmentation and declaration files
⏯ Playground Link
Can't be shown on Playground, since it requires two files
💻 Code
// declaration.d.ts
import { ComponentType } from "react";
declare module "a/b" {
const B: ComponentType<any>;
// const B: import("react").ComponentType<any>;
export default B;
}
// file.ts
import B from "a/b";
🙁 Actual behavior
The error message is "Cannot find module 'a/b' or its corresponding type declarations (2307)". I know this works as indended from https://github.com/microsoft/TypeScript/issues/49043#issuecomment-1124047244, so my proposal is only about changing the error message.
🙂 Expected behavior
In the case where TypeScript can't find a declaration of a module but can find its augmentation, it seems very likely the user intended to make it a declaration, but didn't know top-level import/export change the meaning (like I didn't yesterday). It would be nice to have the message tell the user about the problem and guide to fixing it.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez le comportement avec les deux fichiers présentés, declaration.d.ts et file.ts, et comparez le diagnostic lorsque la déclaration de module est absente mais que son augmentation est trouvée. Suivez le chemin du diagnostic de résolution de module et mettez à jour le message pour expliquer la distinction entre import/export au niveau supérieur ; vérifiez les indications révisées à l’aide de cet exemple et des tests de diagnostic associés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100