打字稿“类型无法分配给类型”错误

时间:2020-10-23 16:49:12

标签: typescript

尝试学习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
}

我该如何解决?

1 个答案:

答案 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