尝试学习TypeScript时遇到两个错误。
Type 'string | null | undefined' is not assignable to type 'string | RegExp | QuerySelector<string | RegExp> | undefined'.
Type 'null' is not assignable to type 'string | RegExp | QuerySelector<string | RegExp> | undefined'.
特别是这一行:
const warrior = await Warrior.findOne({ warriorname })
这来自代码
async (warriorname) => {
const warrior = await Warrior.findOne({ warriorname })
return !warrior
}
我该如何解决?
答案 0 :(得分:3)
从错误中看来,marker='x'
会很乐意接受这样的内容:
Warrior.findOne
或者这个:
const warrior = await Warrior.findOne({ warriorname: 'some string' })
或甚至:
const warrior = await Warrior.findOne({ warriorname: undefined })
但不是这个:
const warrior = await Warrior.findOne({ warriorname: /some regex/ })
话虽如此,您的const warrior = await Warrior.findOne({ warriorname: null })
变量(同样,仅通过错误来判断)看起来可以是warriorname
(有效)或string
(有效) )或undefined
(不有效)
您可以通过分别处理null
情况来解决此问题,如下所示:
null