我有以下类型:
export type dateParts = { day?: string, month?: string, year?: string };
export type dateOrObject = Date | dateParts;
然后我有一个DatePicker组件:
export class DatePicker extends Component {
props: {
value?: dateOrObject,
};
但当我尝试解构value
时它是一个对象:
if (!isDate(value)) {
const { day, month, year } = value;
this.state = {
day,
month,
year
};
return;
}
我收到此错误:
const { day, month, year } = value;
^^^^ property `year`. Property not found in
const { day, month, year } = value;
^^^^^ Date
答案 0 :(得分:0)
脱节联盟要求您使用单个属性进行区分 每种对象类型。你无法区分两个不同的对象 不同的属性。
Flow在您的情况下不知道isDate
函数的含义。所以最好使用简单的属性检查。
if (value.year) {
const { day, month, year } = value;
this.state = {
day,
month,
year
};
return;
}
更新,上面不起作用,但它遵循官方文档。
试试这个:
! (value instanceof Date)