我有一个对象,我有时会收到一个值,有时候没有。
当我得到这个值时,我可以正确地将它分配给对象。
我知道使用myObj.hasOwnProperty('myProperty')
我可以测试该属性是否存在于if语句中。但是当我在下面的行上读它时(只有在设置属性时才会发生),我得到以下错误:
/my/project/my.file.ts中的错误(xx,yy):属性'属性'在类型'类型'。
上不存在
我怎样才能仅在存在的情况下读取该值,从而不会出现此错误?
if (myObj.hasOwnProperty('myProperty')){
doStuff(myObj.myProperty);
}
答案 0 :(得分:1)
只需使用myObj['myProperty']
if (myObj['myProperty'] !== undefined) {
// here myProperty is defined (but maybe null or other falsy value)
}
如评论中所述,如果您可以重新定义myObj类型,然后将其键入为any
,则使得Typescript允许您尝试所需的属性,然后您可以简单地写:
if (myObj.myProperty !== undefined) {
// here myProperty is defined (but maybe null or other falsy value)
}