Typescript 对象可能是';未定义';在三元操作中
我有一段代码:Typescript 对象可能是';未定义';在三元操作中,typescript,Typescript,我有一段代码: const newProps = { onClick: props.onSelect ? () => props.onSelect(choice.value) : undefined, } 在TypeScript中,哪个会给我错误对象可能是“未定义的” 我认为TypeScript在这方面很聪明,并且会理解在这一点上,props.onSelect不能是未定义的。我知道运算符,但我想知道为什么这不起作用。问题是,props.onSelect的用法在另一个函数中,您在之
const newProps = {
onClick: props.onSelect ? () => props.onSelect(choice.value) : undefined,
}
在TypeScript中,哪个会给我错误对象可能是“未定义的”
我认为TypeScript在这方面很聪明,并且会理解在这一点上,props.onSelect不能是未定义的。我知道
运算符,但我想知道为什么这不起作用。问题是,props.onSelect
的用法在另一个函数中,您在之后定义的箭头函数?
。这意味着编译器无法保证调用时props.onSelect
未定义:
例:
您还需要在箭头功能中选择onSelect
:
const props = {
onClick: propsOther.onSelect ? () => propsOther.onSelect && propsOther.onSelect(choice.value) : undefined,
}
注意:我假设您简化了,实际上有两个prop对象,因为否则您的代码将无法编译。这没有任何意义。您正在定义一个
常量props
,并在定义中检查props.onSelect
是否真实-它总是未定义。是的,我简化了我拥有的真实代码,但不够小心。现在修好了。是的,我简化了。谢谢你的回答,这真的很有道理!真不敢相信我自己都没意识到。。。
const props = {
onClick: propsOther.onSelect ? () => propsOther.onSelect && propsOther.onSelect(choice.value) : undefined,
}