【发布时间】:2022-09-23 02:53:12
【问题描述】:
我在 TS 中有一个包装类,它接受构造函数中的字符串并在内部转换为 bigint。我想自定义这个类的对象的序列化/反序列化,
export class MyInt64 implements MyDataTypes {
private readonly _internal: BigInt;
constructor(val: string) {
this._internal = BigInt(val);
}
toJSON() {
return {
val: this._internal,
};
}
}
当JSON.stringify(new MyInt64(\"9223372036854775807\")) 被调用时,我希望它不要将数字向下舍入到9223372036854776000。
这个怎么做?
编辑
对于我的类型MyInt64,我希望 JSON.stringify() 生成字符串,并且我可以通过覆盖 toJSON() 并跟踪内部字符串变量来实现。
但是我想做MyJSON.stringify(),它包装了 JSON.stringify() 并将 MyInt64 的字符串值转换为数字。
-
嗯,从技术上讲,现在它没有四舍五入。它只是抛出一个错误,因为 BigInt 无法转换为 JSON
标签: javascript json typescript bigint