我正在使用Angular 8和math.js库进行大数操作。
我刚把math.js的版本从5.4.0更新到了6.2.3。
我以这种方式在组件中使用math.js:
import * as mathjs from 'mathjs';
constructor() {
mathjs.config({ number: 'BigNumber', precision: 128 });
}
更新后,突然出现新错误。
ERROR Error: The global config is readonly.
Please create a mathjs instance if you want to change the default configuration.
Example:
import { create, all } from 'mathjs';
const mathjs = create(all);
mathjs.config({ number: 'BigNumber' });
我尝试过从'mathjs'导入{create,all},但是这些方法根本不存在。
此问题的解决方法是什么?
答案 0 :(得分:0)
不确定是否可以解决您的问题,但是根据错误,您应该创建一个新实例并稍后使用,如下所示-
import { create, all } from 'mathjs';
const mathjs = new create(all);
mathjs.config({ number: 'BigNumber' });
答案 1 :(得分:0)
一段时间后,我终于找到了解决方法。
首先,我需要删除以下行:
import * as mathjs from 'mathjs';
由于我们需要使用此名称创建变量,这将是具有新配置的mathjs的新实例,因此该行不再引起关注。
import { create, all, MathJsStatic } from 'mathjs';
private mathjs: Partial<MathJsStatic>;
constructor() {
this.mathjs = create(all, { number: 'BigNumber', precision: 128 });
}
如果我们需要在所有应用程序上配置相同的mathjs,那么好的方法是创建服务并在各处使用相同的实例。