簡體   English   中英

Typescript 類型 boolean 不可分配給 void

[英]Typescript type boolean is not assignable to void

myContact = [
 {
  name: 'John',
  lastName: 'Doe',
  phone: 123456789
 },
 {
  name: 'Mark',
  lastName: 'Doe',
  phone: 98765432
 }
]

在點擊事件上,添加一個條件來檢查數組長度,如果長度 > 2。

onClick() {

 if(myContact.length > 2)
     redirect page...
    return false; // don't want the code to continue executing
 }

錯誤:Typescript 類型 boolean 不可分配給 void

我嘗試使用 some() 進行類似的操作,以下我的條件按要求工作

let checkValue = myContact.some(s => s.name === 'John')
if(checkValue)return false

但如果我嘗試與我的聯系人類似,EG

let checkLength = myContact.filter(obj => obj.name).length
if(checkValue)return false   // error: error: Typescript type boolean is not assignable to void

我該如何解決這個問題,

void類型意味着 function 做了一些事情但不返回值。 這意味着具有void類型的 function 也不能返回boolean 由於 TypeScript 預計它不會返回任何內容。

您很可能有一個 function 聲明如下:

const functionName = (): void => {
  ...
}

除此之外,這似乎不是這里問題的核心。 如果您希望您的 function “提前返回”並停止執行其邏輯的 rest。 你可以明確地告訴它不返回這樣的東西:

const functionName = (): void => {
  if (someCondition) {
    return;
  }

  // This code won't run if `someCondition` is true.
  someOtherLogic()
}

暫無
暫無

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

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