猫鼬$ push打字稿错误

时间:2020-04-19 02:57:01

标签: typescript webpack mongoose ts-loader

似乎一些用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"

2 个答案:

答案 0 :(得分:0)

在上面的行中添加// @ ts-ignore似乎可以使打字稿检查器平静下来,并且查询仍然有效。

答案 1 :(得分:0)

我不确定这是否与您的问题相同,但是今天我也面临着同样的问题,该错误是我在该字段中定义的。我的猫鼬文件中有追踪者。

attachments?: AttachmentDocument["_id"]

应该在哪里:

attachments?: AttachmentDocument["_id"][]

由于它是一系列文档,因此上述更改解决了我的问题。

将其添加为帮助某人的答案,不确定是否是该问题的实际答案。