最好的方式来确保TypeScript,这与Apollo this.props.data非空?

我检查this.props.data.loading,如果它完成(并没有错误),那么我想直接使用this.props.data。但是,TS告诉我,它可能是Apollo类型实现方式的空白b/c。最好的方式来确保TypeScript,这与Apollo this.props.data非空?

避免每次都需要写这样的东西的最佳方法是什么?

(this.props.data as any).myData.foobar 

例如,我可以抛出,如果它为空(它永远不应该)。但是这是一个令人讨厌的解决方案,因为如果我有许多地方根据是否加载数据而呈现不同的地方,那么这些代码就会遍布整个地方。

if (!this.props.data) { throw new Error("Data is null!"); } 

相当新的阿波罗,我认为这是一个相当基本的问题。

回答:

非空断言运算符!看起来像它会做我想要的。

this.props.data!.myData.foobar 

Documented in TypeScript 2.0.

(感谢this和this SO答案。)

以上是 最好的方式来确保TypeScript,这与Apollo this.props.data非空? 的全部内容, 来源链接: www.h5w3.com/qa/257560.html

回到顶部