I run into a strange behavior in my angular app today.
ERROR in src/main(A,B): error TS2339: Property 'XXX' does not exist on type '{}'.
The error occured at the following line of code
xxx.subscribe(data => {
this.var = data.XXX
});
So basically i subscribe to an observable and map the data from the observable to an global var. My angular App works as intended, so this error seems to have no effect on the app itself, but I still can't figure out whats wrong here. Below is the console log of data
:
console.log(data)
//{"XXX": "test"}
I run into a strange behavior in my angular app today.
ERROR in src/main(A,B): error TS2339: Property 'XXX' does not exist on type '{}'.
The error occured at the following line of code
xxx.subscribe(data => {
this.var = data.XXX
});
So basically i subscribe to an observable and map the data from the observable to an global var. My angular App works as intended, so this error seems to have no effect on the app itself, but I still can't figure out whats wrong here. Below is the console log of data
:
console.log(data)
//{"XXX": "test"}
Share
Improve this question
edited Jul 17, 2018 at 8:59
Niladri Basu
10.6k7 gold badges57 silver badges64 bronze badges
asked Jul 17, 2018 at 8:57
sHamannsHamann
7993 gold badges11 silver badges36 bronze badges
2
-
what if you use
data['XXX']
instead ? type{}
does not holdXXX
attribute, that's why. – Florian Commented Jul 17, 2018 at 8:59 - Possible duplicate of Property '_body' does not exist on type 'Response' – koninos Commented Dec 14, 2018 at 13:06
2 Answers
Reset to default 6Typescript plains that you do not have the property inside the data, you can either use any or create an inteface with that property,
xxx.subscribe((data:any) => {...}
You have instantiated data as just an object example : data = {}
.
As object doesn't have XXX
property it gives this error.
So solution will be data: {XXX: string, YYY: number ....} = {}
Else you can access XXX with data['XXX']
which is the easiest option