Как исправить: свойство 'seedrandom' не существует для типа 'Math' - PullRequest
0 голосов
/ 02 октября 2019

Я бы попытался добавить seedrandom в угловой проект. Я установил его и определения машинописи, используя npm. В моем пакете json есть соответствующие записи (ниже), поэтому я уверен, что он установлен нормально, и соответствующие папки находятся в узлах-модулях.

"dependencies": {
  "@types/seedrandom": "^2.4.28",
  "seedrandom": "^3.0.5"
}

Несмотря на это, я постоянно получаю сообщение об ошибке: "Property 'seedrandom' does not exist on type 'Math'." Фактически, когда я ng serve ошибка выдает в консоли, но веб-приложение работает нормально. Когда я делаю ng build, я получаю сообщение об ошибке, и сборка завершается неудачей.

Я пытался определить интерфейс для этого , но это не помогает. И я тоже смотрел код два дня, и это тоже не помогло.

  getRandomNumber(n) {

    const randomNumber = new Math.seedrandom( '1234' );
    return Math.round( Math.round( randomNumber() * n) );

 }

ОБНОВЛЕНИЕ: После ответа от Мика я попробовал следующее:

import { seedrandom } from 'seedrandom';

getRandomNumber(n) {
  const randomNumber = seedrandom( '1234' );
  return Mathround( Math.round( randomNumber() * n) );
}

только получить ошибку: Module '"../blah/node_modules/@types/seedrandom"' has no exported member 'seedrandom'.

Что интересно, потому что, когда я проверял файл @ types / seedrandom / index.d.ts, включайте строки:

export = seedrandom;
export as namespace seedrandom;

Какя могу получить возможность работать в Angular?

Ответы [ 2 ]

1 голос
/ 02 октября 2019

Согласно документации :

Начиная с версии 3, при использовании через require ('seedrandom') глобальный Math.seedrandom больше не доступен.

Так что, если вы хотите использовать его в своем Angular-приложении, установленном через npm, вам следует импортировать функцию напрямую и использовать генератор случайных чисел, который она возвращает:

const seedrandom = require('seedrandom');
const rng = seedrandom('<seed>');
0 голосов
/ 03 октября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...