簡體   English   中英

TypeScript將布爾值轉換為字符串

[英]TypeScript converts boolean to string

我有以下問題:在以下代碼中,我試圖檢查變量結果是否為true或false:

    const result: boolean = await this.sqlConnector.validatePassword
        (this.userData.getUserId(), validatorContext.recognized.value);
    // Returns string
    console.log(typeof(result));

函數sqlconnector.validatePassword也返回一個布爾值。 該函數的標題如下所示:

public validatePassword (userId: string, userInput: string): Promise <boolean> 

但是, typeof(result)函數表示該變量來自字符串類型。 這最終導致以下if語句始終失敗的事實。

    // always false because no boolean
    if (result === true) {
        return true;
    } else {

這是什么原因呢?

看起來您正在傳遞回一個字符串值。 這應該在返回響應的代碼中解決。 作為臨時措施,您可以檢查字符串的含義並以類似方式使用它。 如果固定,則應在響應時保持。

if (typeof result === "string" && result === "true") {
    return true;
} 

您還可以檢查響應並進行相應更改。

let result: any = await this.sqlConnector.validatePassword
(this.userData.getUserId(), validatorContext.recognized.value);


if (typeof result === 'string'){
  result = result === "true";
}

最重要的是,盡管我建議讓響應以布爾類型返回,但前提是允許像這樣的簡單檢查。

if (result) // as long as result is true
{
  //you will end up here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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