[英]Typescript "Type is not assignable to type" error
在嘗試學習 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
}
我怎樣才能解決這個問題?
從錯誤來看, 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
情況來解決此問題,如下所示:
if (warriorname === null) {
return some error;
}
const warrior = await Warrior.findOne({ warriorname })
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.