Microsoft/TypeScript

Better error message when a module declaration is not found, but a module augmentation is?

開放

#55,347 建立於 2023年8月13日

 (2 則留言) (0 個反應) (0 位負責人)TypeScript (13,395 個分叉)batch import
Experience EnhancementHelp WantedSuggestion

倉庫指標

星標
 (108,860 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

🔎 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.

貢獻者指南