//Person Type
type Person{
canDisplayButton:boolean,
anotherEmail:string
}
const canEdit:boolean = person.canDisplayButton && data.anotherEmail;
Flow抛出错误,提示anotherEmail: string (This type is incompatible with boolean)
如何解决?
答案 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
来确定变量的真实性?