【发布时间】:2020-08-01 13:40:26
【问题描述】:
似乎使用 mongoose 或 @types/mongoose 进行的某些软件包升级现在会导致来自 mongoose $push、$pull、$addToSet 和 $each 运算符的新打字稿错误。例如:
await User.findByIdAndUpdate(request.user._id, {
$push: {
mediaList: { $each: mediaIDs },
},
});
将鼠标悬停在我可以看到的 $each 上:
Type 'string[]' is not assignable to type 'never'.ts(2322)
我在使用其他运算符时也遇到了同样的问题(类型“无论给定类型”不能分配给从不类型)。我想它也可能与 webpack 升级和 ts-loader 升级有关。我正在使用:
"@types/mongoose": "^5.2.4",
"mongoose": "^5.2.4",
"ts-jest": "^21.2.4",
"ts-loader": "4.1.0",
"ts-node": "^3.2.0",
"tslint": "^5.11.0",
"typescript": "^3.1.6",
"webpack": "^4.42.1",
"webpack-cli": "^3.3.11"
【问题讨论】:
-
和我一样的问题。 prnt.sc/txvg8l你找到解决办法了吗?
-
将 //@ts-ignore 添加到上面的行对我有用。我猜这不是真正的解决方案,但确实无法解决这个问题。
-
是的,这有帮助,但我们正在失去这种方式的 TS 类型检查。另外我注意到这个问题只发生在 $inc 运算符上,所以如果我将上面的查询更改为 $set 它工作顺利。它肯定与@types/mongoose 有关,希望他们能在下一个版本中修复它。再次感谢您的帮助,我将使用它,因为使用 $inc 进行查询更简洁。
标签: typescript webpack mongoose ts-loader