const res = JSON.parse(resObj as string)
I am new to typescript can anyone please explain what is happening in the above code?
resObj as string
is a type assertion . It tells typescript "treat resObj as though it's a string, even though the information you have says its not".
Type assertions are occasionally necessary when you know something that typescript does not. But you're basically telling typescript to not check your work, so if you use it when resObject actually isn't a string, then typescript cannot point this out to you, and you may get an exception or other unexpected behavior at runtime.
resObj
is being interpreted as type string, and then parsed as a JSON string.
The reason for declaring as string
is most likely that resObj
is being returned by an external or async service which does not return a single type of object, but in this instance the user knows the return will be a string (whereas typescript does not).
JSON.parse
is then converting the string into a usable Javascript object. Eg:
const resObj = `{"prop1":"foo","prop2":3,"prop3":false}`; const res = JSON.parse(resObj); console.log(res);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse has some good docs on this.
Let's assume resObj
is some json blob like '{"result":true, "count":42}'
First of all
resObj as string
means that we are typecasting whatever resObj
is to a string. This is just to make sure we're working with the right types, when we call that JSON.parse
function.
const res = JSON.parse(resObj as string)
is then doing the following:
resObj
as a stringresObj
variable into JSON.parse
, which will return an Object { result: true, count: 42 }
res
to be equal to that Object { result: true, count: 42 }
And that's it. You should now be able to access fields on our res
object, like res.result
or res.count
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.