1

我正在使用 Angular 8 和 math.js 库进行大数字操作。

我刚刚更新了从 5.4.0 到 6.2.3 的 math.js 版本。

我以这种方式在我的组件中使用 math.js:

import * as mathjs from 'mathjs';

constructor() {
   mathjs.config({ number: 'BigNumber', precision: 128 });
}

更新后突然出现新错误。

错误:全局配置是只读的。如果要更改默认配置,请创建一个 mathjs 实例。例子:

从'mathjs'导入{创建,全部};
const mathjs = 创建(全部);

mathjs.config({ number: 'BigNumber' });

我试过import { create, all } from 'mathjs了,但那些方法根本不存在。

这个问题的解决方法是什么?

4

2 回答 2

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 配置,那么好的方法是创建一个服务并在任何地方使用相同的实例。

于 2019-11-08T08:07:49.317 回答
0

不确定是否能解决您的问题,但根据错误,您应该创建一个新实例并稍后使用,如下所示 -

import { create, all } from 'mathjs';
  const mathjs = new create(all);
  mathjs.config({ number: 'BigNumber' });
于 2019-11-07T10:14:55.317 回答