I have a container as follows:
lass BurgerBuilder extends React.Component {
state = {
ingredients: {
salad: 1,
bacon: 1,
cheese: 2,
meat: 2
}
}
render() {
return(
<>
<Burger ingredients={this.state.ingredients}/>
<div>Build Controls</div>
</>
);
}
}
My Burger functional component includes the following code
export interface IBurgerProps {
ingredients: {
salad?: number,
bacon?: number,
cheese?: number,
meat?: number
}
}
const burger = (props: IBurgerProps) =>{
const transformedIngredients = Object.keys(props.ingredients).map(igKey=> {
return [...Array(props.ingredients[igKey])].map((_, i) => {
<BurgerIngredient key={igKey + i} type={igKey}/>
})
});
Theoretically, if I add "chicken: 1" to the ingredient object in my container (BurgerBuilder), I should get an error. I.e, typescript should complain saying we can't assign { salad: number, bacon: number, cheese: number, meat: number, chicken: number } to type { salad: number | undefined, bacon: number | undefined, cheese: number | undefined, meat: number | undefined}
Why is it that I don't get this error when I add "chicken: 1" to the ingredients object in Burger Builder?
Just trying to understand typing and react more.