首页 > 解决方案 > VSCode ts-server 看不到 tsconfig.json 的“include”部分中定义的 .d.ts 文件

问题描述

我创建了一个包含两个应用程序的 React Module Federation项目,它们都是用 TypeScript 编写的。通过在定义暴露组件的每个包的根目录中创建一个 .d.ts 文件,我设法保持远程组件的类型安全:

declare module "app2/App" {
    type Props = import('./src/components/App/App').Props;

    const App: React.FunctionComponent<Props>;

    export default App;
}

然后确保所有应用程序都具有以下内容tsconfig.json

{
    "include": [
        "../*/*.d.ts"
    ]
}

它运行良好,即使通过React.lazy. 但是,VSCode 的内置 Typescript 服务器似乎没有考虑到“包含”(或这样做不正确)并强调了动态导入:

const AuthApp = React.lazy(() => import('app2/App'));

带有错误消息:

找不到模块“app2/App”或其相应的类型声明。

VSCode 中是否有允许我摆脱它的设置,或者我应该提出错误/功能请求?

编辑:如果我将 .d.ts 文件移动到父应用程序文件夹中,错误就会消失,但我想将定义与定义组件代码的应用程序一起保留。

EDIT2:我尝试创建一个工作区并向其中添加应用程序文件夹(而不是打开 monorepo 文件夹),但它也不起作用。

标签: reactjstypescriptvisual-studio-code

解决方案


推荐阅读