【发布时间】:2018-12-27 00:15:49
【问题描述】:
我在 React 项目中使用 typescript。我在typescript 中有以下代码:
if(this.state.deletedItem !== null) {
this.props.deleteItem({refItemIdx: this.state.deletedItem.itemIdx});
}
tslint 在对象 this.state.deletedItem.itemIdx 上给我一个错误 TS2531: Object is possibly 'null'.。它说this.state.deletedItem 可能为空。但是我已经在if条件下检查过了,为什么还是报这样的错误?
下面是类型定义:
interface State {
deletedItem: ItemDiscountTranItem | null;
}
export class MainView extends React.Component<Props, State> {
state = {
deletedItem: null,
};
...
我已尝试更新代码如下,但仍然出现错误:
if(this.state.deletedItem) {
this.props.voidItemDiscount({refItemIdx: this.state.deletedItem ? this.state.deletedItem.itemIdx : 0});
}
我尝试了下面的语法,但仍然得到同样的错误:
this.props.voidItemDiscount({refItemIdx: this.state.deletedItem && this.state.deletedItem.itemIdx});
【问题讨论】:
标签: reactjs typescript tslint