Better error message when a module declaration is not found, but a module augmentation is?
#55.347 geöffnet am 13. Aug. 2023
Repository-Metriken
- Stars
- (48.455 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)
Beschreibung
🔎 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.