Mathjs'全局配置是只读的?

时间:2019-11-07 10:09:44

标签: javascript angular mathjs

我正在使用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},但是这些方法根本不存在。

此问题的解决方法是什么?

2 个答案:

答案 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,那么好的方法是创建服务并在各处使用相同的实例。