似乎一些用mongoose或@ types / 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"
答案 0 :(得分:0)
在上面的行中添加// @ ts-ignore似乎可以使打字稿检查器平静下来,并且查询仍然有效。
答案 1 :(得分:0)
我不确定这是否与您的问题相同,但是今天我也面临着同样的问题,该错误是我在该字段中定义的。我的猫鼬文件中有追踪者。
attachments?: AttachmentDocument["_id"]
应该在哪里:
attachments?: AttachmentDocument["_id"][]
由于它是一系列文档,因此上述更改解决了我的问题。
将其添加为帮助某人的答案,不确定是否是该问题的实际答案。