reactjs - 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 文件夹),但它也不起作用。
解决方案
推荐阅读
- azure - 如何获取用户在 AppInsights 上从会话开始到会话结束的整个旅程所花费的时间
- javascript - 如何在窗口单击时添加新的 Div 元素
- python - 如何使用 Python 在 MySQL 中搜索记录
- python - 只能连接列表(不是“字节”)来列出
- android - 致命异常:java.lang.LinkageError 没有为类 com.google.android.gms.ads.nonagon.signals.n 定义超类
- django - 如何在 Django 中提供静态媒体文件?
- channel - 如何基于Android Tv Input Framework制作节目指南,如下图
- macos - CMSampleBufferGetImageBuffer 为捕获的 JPEG stillImage 返回 nil
- vue.js - Vuejs - 具有多个复选框的 v-model
- token - consul-template: [WARN] vault.token: xxyyzz 的 TTL 超过了 xxyyzz 的有效 max_ttl;TTL 值有相应的上限