繁体   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