除非出现严重错误,否则我希望我所引用的JavaScript对象是这样的:
axiosResult.data.attendeeResults.username
中将包含真实数据。即,定义了data
,定义了attendeeResults
,并且定义了username
。如果其中任何一个未定义,我希望整个express安静地返回undefined且没有错误。
如何在TypeScript中执行此操作?甚至只是EcmaScript 6?
答案 0 :(得分:1)
建议将?
运算符添加到javascript中,以实现与axiosResult?.data?.attendeeResults?.username
相同的用例,以便仅在LHS不是未定义或为null的情况下才读取该属性。否则返回undefined
在打字稿中,从文档中,您可以使用axiosResult!.data!.attendeeResults!.username
来获取[https://github.com/Microsoft/TypeScript/wiki/What的新TypeScript#non-null-assertion-operator]。
答案 1 :(得分:0)
一种解决方案是使用non null assertion operator official doc
摘自TypeScript官方发行说明:
function processEntity(e?: Entity) {
validateEntity(e);
let s = e!.name; // Assert that e is non-null and access name
}
根据您的情况,您可以对axiosResult.data
进行检查:
axiosResult.data!.attendeeResults!.username