簡體   English   中英

打字稿“類型不可分配給類型”錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM