我有这段代码:
const newProps = {
onClick: props.onSelect ? () => props.onSelect(choice.value) : undefined,
}
在TypeScript中哪个会给我错误Object is possibly 'undefined'
。
我认为TypeScript对此很聪明,并且明白在这一点上,props.onSelect不能被定义。我知道!
运算符,但我想知道为什么这不起作用。
答案 0 :(得分:1)
问题是props.onSelect
的使用是在另一个函数中,你在?
之后定义的箭头函数。这意味着编译器无法保证在调用时props.onSelect
未定义:
例如:
propsOther.onSelect = undefined;
props.onClick();
您还需要在箭头功能中检查onSelect
:
const props = {
onClick: propsOther.onSelect ? () => propsOther.onSelect && propsOther.onSelect(choice.value) : undefined,
}
注意:我认为你已经简化了,实际上有两个道具对象,因为否则你的代码就无法编译。