0
我剛碰到一個令我困惑的問題flow
。有人可以向我解釋爲什麼以下不起作用,以及我將如何解決它?流聯合類型和可選屬性
// @flow
type MessageDescriptor = {
id: string,
defaultMessage?: string,
description?: string
};
type MenuLabel = MessageDescriptor & {
+values?: { +[name: string]: string }
};
const msg: MessageDescriptor = {
id: 'test'
};
const label: MenuLabel = msg;
我得到的錯誤是:
9: type MenuLabel = MessageDescriptor & {
^property `values`. Property not found in
17: const label: MenuLabel = msg;
^object type
然而,values
顯然是可選的。更奇怪的是,以下工作:
const label: MenuLabel = { ...msg };
不幸的是,這不是一個真正的解決方案,因爲它們來自不同的庫,所以我不能更改'MessageDescriptor'類型。 – Alxandr
我看到,是不是一個聯盟類型而不是交叉類型? –
不需要我需要以下內容才能生效'MenuLabel'值:'{id:'test',values:{foo:'bar'}}'' – Alxandr