我试图将seedrandom添加到有角项目中。我已经使用npm安装了它和打字稿定义。我的json包具有相关的条目(如下所示),因此我确信它已安装成功,并且相关的文件夹位于节点模块中。
"dependencies": {
"@types/seedrandom": "^2.4.28",
"seedrandom": "^3.0.5"
}
尽管如此,我仍然不断收到错误:"Property 'seedrandom' does not exist on type 'Math'."
实际上,当我执行ng serve
时,错误会在控制台中引发,但是Web应用程序可以正常工作。当我做ng build
时出现错误,构建失败。
我尝试为每个this定义一个接口,但无济于事。而且我也盯着代码两天了,这也没有帮助。
getRandomNumber(n) {
const randomNumber = new Math.seedrandom( '1234' );
return Math.round( Math.round( randomNumber() * n) );
}
更新: 根据Myk的回答,我尝试了以下操作:
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中获得Seedrandom?
答案 0 :(得分:1)
从版本3开始,通过require('seedrandom')使用时, 全局Math.seedrandom不再可用。
因此,如果您希望在通过npm
安装的Angular应用程序中使用它,则应直接导入该函数并使用返回的随机数生成器:
const seedrandom = require('seedrandom');
const rng = seedrandom('<seed>');
答案 1 :(得分:0)
仅是后代,我无法解决此问题,最终使用了其中一项建议here,因为我不需要任何超高质量的东西
答案 2 :(得分:0)
import * as seedrandom from "seedrandom";
后跟console.log(seedrandom('hello.')());
似乎对我有用。
esModuleInterop似乎与此有关。我只是复制粘贴了在那里建议的第一个导入文件,并且不再打扰阅读,所以我不知道任何细节。
感谢您的初步“盯着代码两天”,我不必自己做,而是能够在10分钟内找到适合我的解决方案。感谢您的辛勤工作:-)