u2x v1.1.0
u2x ·

A suite of utilities for converting unknown data to desired type.
Install
yarn add u2xor
npm install u2x --saveBackground
When you receive data from remote.
const result = await request('...');You cannot trust that type of data. If you access its property directly, such as:
console.log(result.aaa); // May be thrown.That may be thrown, if the result is null or undefined.
Therefore, you can wrap u2o with this result, such as
const safeResult = u2o(result);
console.log(safeResult.aaa);The u2o function convert any value to an object.
Wait! Is not that too simple? So why do not I wrap it with Object?
const safeResult = Object(result);
console.log(safeResult.aaa);This code works just as well.
Yes, you are right.
The u2o function is also implemented using Object, you can see the code src/u2o.ts here.
But, in TypeScript, Object always returns an any, it is a bad practis.
For example
const safeResult = Object(result);
console.log(safeResult.aaa.bbb); // May be throwOn an any, all properties are any (The contagiousness of any),
you can not guarantee that every property is an object.
In fact, if Object(...) returns Record<PropertyKey, unknown>, that is a better definition.
When you attempt to access a property from an unknown, TypeScript compiler warns you that this is an error.