Reputation: 103
I have a simple request but It seems to be harder than expected. I have to parse a bigint
from a JSON stream. The value is 990000000069396215
. In my code, this value is declared in TypeScript like this: id_address: bigint
. But this is not working, the value is truncated, and return nothing like 9900000000693962100
How can I simply manage this bigint
in my code?
Upvotes: 5
Views: 4786
Reputation: 3319
If you want to make it reliable and clean then always stringify/parse bigint values as objects:
function replacer( key: string, value: any ): any {
if ( typeof value === 'bigint' ) {
return { '__bigintval__': value.toString() };
}
return value;
}
function reviver( key: string, value: any ): any {
if ( value != null && typeof value === 'object' && '__bigintval__' in value ) {
return BigInt( value[ '__bigintval__' ] );
}
return value;
}
JSON.stringify( obj, replacer );
JSON.parse( str, reviver );
Upvotes: 3
Reputation: 522
I guess you need to do something like this,
export interface Address {
id_address: string;
}
Then somewhere in your code where you implement this interface you need to do,
const value = BigInt(id_address); // I am guessing that inside your class you have spread your props and you can access id_address. So inside value you will get your Big integer value.
Reference for BigInt.
Upvotes: 0