TS2304:Cannot 查找名称 'btoa'

TS2304:Cannot find name 'btoa'

我正在使用 btoa 方法对用户名和密码进行哈希处理,这似乎工作正常,但此错误出现在我的 TypeScript 错误 - WebStorm 中。如何解决?

js代码

let base64hash = btoa(user.username+ ':' + user.key);

tsconfig.json

/* tsconfig.json */
{
  "compileOnSave": false,
  "compilerOptions": {
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "es2016"
    ]
  }
}

编译器找不到 btoa() 的定义的原因是您没有包含所有必需的库。

当您使用 --lib 编译器选项时,您需要包含未使用此选项时默认包含的所有库。
在你的情况下,缺少的是 DOM 库,所以它应该是:

/* tsconfig.json */
{
    ...
    "compilerOptions": {
        ...
        "lib": [
            "es2016", "DOM"
        ]
    }
}

作为 btoa is in the lib.dom.d.ts 的定义。