我检查this.props.data.loading,如果已经完成(并且没有错误),那么我想直接使用this.props.data。但是,TS告诉我它可能是实现Apollo类型的方式的空b / c。
每次避免需要写这样的东西的最佳方法是什么?
(this.props.data as any).myData.foobar
例如,如果它为null(我永远不应该),我可以抛出。但这是一个令人讨厌的解决方案,因为如果我有很多地方根据数据是否加载而呈现不同的地方,那么这个代码就会到处都是。
if (!this.props.data) { throw new Error("Data is null!"); }
阿波罗相当新,我认为这是一个相当基本的问题。
答案 0 :(得分:1)
非空断言运算符 !
看起来会完全符合我的要求。
this.props.data!.myData.foobar