如何解决动态布尔变量分配的FlowJS错误?

时间:2019-01-31 13:14:33

标签: reactjs flowtype

//Person Type  
type Person{
    canDisplayButton:boolean,
    anotherEmail:string
}

const canEdit:boolean = person.canDisplayButton && data.anotherEmail;

Flow抛出错误,提示anotherEmail: string (This type is incompatible with boolean)

如何解决?

2 个答案:

答案 0 :(得分:1)

您看到的错误正在发生,因为

const canEdit = true && 'text';

// results into

canEdit // 'text'

如您所定义的canEdit为布尔值-为它分配一个字符串-会导致错误。因此,为它分配适当类型的解决方案

const canEdit:boolean = person.canDisplayButton && data.anotherEmail !== '';

// or 

const canEdit:boolean = Boolean(person.canDisplayButton && data.anotherEmail);

// or

let canEdit = false;

if (person.canDisplayButton && data.anotherEmail) {
    canEdit = true;
}

答案 1 :(得分:1)

如果要确定是否定义了data.anotherEmail,是否不能使用!!data.anotherEmail来确定变量的真实性?