javascript - Typescript - 過濾器在聯合類型陣列上不起作用
以下是我的類型定義:
export const APPLE = "apple"
export const PEAR = "pear"
export const PLUM = "plum"
export type TAllowedFruits = APPLE | PEAR | PLUM
...
export interface IGroceryCart {
Fruits : TAllowedFruits,
Veggies : TAllowedVeggies,
...
}
如你所見,我正在指定一個聯合類型,允許水果可以是蘋果、梨或李子。
在我的程式碼的其他地方,我現在有一個排好隊的購物車陣列,對於每個購物車,我想從他們的水果中篩選出蘋果,並且只在使用者介面上顯示梨子和梅子。
所以我確實有像這樣的東西:
const groceryCarts: IGroceryCart[] = getGroceryCarts()
groceryCarts.filter(cart => cart.Fruits !== APPLE).map(item => ...)
然而,我的使用者介面仍然顯示所有三種水果,而不只是梨子和李子。如果我這麼做:
groceryCarts.filter(cart => cart.Fruits !=='apple').map(item => ...)
然後,過濾過程適當地發生。
有人可以幫我弄清楚為什麼會發生這種情況嗎?另外,請原諒這個生硬的例子,但這是我能想到的最好方式來說明重點。