创建外部模块时打字稿类型不匹配

时间:2019-02-18 12:59:37

标签: node.js typescript nestjs typeorm

我正在使用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,因此应始终相同。

1 个答案:

答案 0 :(得分:2)

您的外部库似乎有其自己的类型定义。在this thread中,建议您将node_modules中的导入内容手动映射到package.json下的文件夹中:

"paths": {
  "typeorm": ["node_modules/typeorm"],
  "typeorm/*": ["node_modules/typeorm/*"]
}

仅在使用npm link时这可能是个问题。