Mathjs 'Глобальная конфигурация только для чтения'? - PullRequest
0 голосов
/ 07 ноября 2019

Я использую Angular 8 и библиотеку math.js для манипулирования большими числами.

У меня просто обновленная версия math.js с 5.4.0 до 6.2.3.

IЯ использую 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' });

Я пытался 'import {create, all} из' mathjs ', но эти методы вообще не существуют.

Какой обходной путь для этой проблемы?

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Через некоторое время я наконец нашел решение.

Сначала мне нужно было удалить строку:

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 для всех приложений, хороший способ - создать службу и использовать один и тот же экземпляр везде.

0 голосов
/ 07 ноября 2019

Не уверен, что решит вашу проблему, но из-за ошибки вы должны создать новый экземпляр и использовать позже, как показано ниже -

import { create, all } from 'mathjs';
  const mathjs = new create(all);
  mathjs.config({ number: 'BigNumber' });
...