【发布时间】:2019-05-10 21:37:49
【问题描述】:
我有一个容器如下:
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>
</>
);
}
}
我的 Burger 功能组件包含以下代码
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}/>
})
});
理论上,如果我将“鸡:1”添加到容器 (BurgerBuilder) 中的成分对象,我应该会收到错误消息。即,打字稿应该抱怨说我们不能分配 {沙拉:数字,培根:数字,奶酪:数字,肉:数字,鸡肉:数字}来输入 {沙拉:数字 |未定义,培根:数字 |未定义,奶酪:数字 |未定义,肉:数字 |未定义}
为什么我在 Burger Builder 中将“chicken: 1”添加到成分对象时没有收到此错误?
只是想了解打字并做出更多反应。
【问题讨论】:
标签: reactjs typescript typescript2.0