我安装模块:
npm install --save crypto
我将它导入我的组件:
import { createHmac } from "crypto";
但我得到错误:
错误在--------------(4,28):Canno 找到模块'加密'。
我做错了什么?
答案 0 :(得分:5)
您需要安装第三方库的定义文件,例如crypto
。因此打字稿可以找到它的“含义”。
我认为定义文件是:
npm install --save-dev @types/crypto-js
然后您可以导入模块,如:
import * as crypto from "crypto";
如果找不到该lib的定义文件,可以自己编写或作为解决方法将模块声明为any
但是typescript将无法自动完成方法
declare var crypto: any;
并使用其方法:
crypto.createHmac..
答案 1 :(得分:1)
要将crypto
NodeJS库与Typescript一起使用(例如,Angular> = 2),请执行以下步骤:
npm install @types/node --save-dev
安装NodeJS定义在tsconfig.ts
文件中添加以下内容:
"files": [
"./node_modules/@types/node/index.d.ts"
]
使用import * as crypto from 'crypto';
答案 2 :(得分:1)
我正在使用Angular的最新版本进行开发,并且“ crypto-js”似乎可以正常工作。
安装软件包和定义:
npm install crypto-js
npm install --save @types/crypto-js
使用它:
import { SHA256, enc } from "crypto-js";
...
login() {
...
const hashedPass = SHA256(this.loginForm.value.password).toString(enc.Hex);
...
}
答案 3 :(得分:1)
current tsconfig.json configuration(我正在使用“ typescript”:“〜3.5.3”)包括在这种情况下应使用的 types 编译器选项:在tsconfig.ts文件中添加以下内容:
var request = URLRequest(url: myURL)
request.httpBody = generateUserscoreJSON(userscores: userscores)
通过{
"compilerOptions": {
"types" : [ "node" ]
}
}
将库导入要使用的库
不要将import *用作来自'crypto'的密码:它将导入不推荐使用的符号/函数。 (您可能应该看到编译器对此有所抱怨)