node.js - 创建外部模块时打字稿类型不匹配
问题描述
我正在使用 TypeScript 并使用 nestjs 和 typeorm 创建一个 API。项目中的一些模块通过将它们提取到自己的节点模块中来实现可重用。这导致Repository
外部模块中的Repository
类型与原始包中的类型不同。所以当使用外部模块时,我得到了错误
Argument of type 'import("/Users/user/project/node_modules/typeorm/repository/Repository")
.Repository<import("/Users/project/src/user/user.entity").User>'
is not assignable to parameter of type
'import("/Users/user/my-module/node_modules/typeorm/repository/Repository")
.Repository<import("/Users/project/src/user/user.entity").User>'.
typeorm 包在节点包中被列为 peerDependency,因此它应该始终相同。
解决方案
您的外部库似乎有自己的类型定义。在此线程中,建议将导入映射到node_modules
您手动下的文件夹package.json
:
"paths": {
"typeorm": ["node_modules/typeorm"],
"typeorm/*": ["node_modules/typeorm/*"]
}
这可能只是使用时的问题npm link
。
推荐阅读
- java - 如何实现呼叫屏蔽?
- datatables - 如何使用范围日期选择器过滤服务器端 jquery 数据表
- java - JUnit5 - @CsvSource - 将源转换为 POJO
- cmd - 在 cmd 中为特定命令创建别名
- python - 构建嗖嗖索引时超出最大递归深度
- python - 用全局变量序列化函数
- ios - 具有按比例填充的子视图和内在宽度的 iOS StackViews 未按预期运行
- android - 无法在扩展 View 的内部类中覆盖 onCreateOptionMenu
- python - 如何在幻灯片的特定位置通过 python 将 Excel 文件和链接数据嵌入 PowerPoint
- c# - 无法获取 dll 文件的第 3 方数字签名