J'ai une interface comme celle-ci :
interface Product {
[key: string]: {
options?: Record<string, string>
}
}
donc :
state: Product
...
state = state ?? {}
state[sku] = state[sku] ?? {}
state[sku].options = state[sku].options ?? {}
state[sku].options[id] = e.target.value // this line breaks
La ligne surlignée ci-dessus indique que state[sku].options
pourrait être indéfini, bien sûr je sais qu'il n'est pas indéfini, puisque je vérifie sur la ligne précédente.
Cependant, ce code fait exactement la même chose et fonctionne.
const newState = state ?? {}
const slice = newState[sku] ?? {}
slice.options = slice.options ?? {}
slice.options[id] = e.target.value
Alors, qu'est-ce que j'ai raté ?