【问题标题】:the syntax requires an imported helper named __spreadArrays该语法需要一个名为 __spreadArrays 的导入助手
【发布时间】:2020-02-08 06:26:56
【问题描述】:

当我尝试在打字稿中使用传播时:

.reduce((unique, x) => {
    unique.some(element => element.machineName === x.machineName) ? unique : [...unique, x];
}

我收到来自Visual Studio Code 的红色标记警告:

the syntax requires an imported helper named __spreadArrays

typescript version: "2.3.4"
target: "es5"

我认为在以后的版本中此问题已得到解决,但现在我无法迁移。我该如何解决?

注意: 项目编译良好并且可以正常工作。但是VS Code 中的红色底层很烦人。

【问题讨论】:

标签: javascript typescript visual-studio-code spread


【解决方案1】:

在我的情况下,问题是 target: "es5" 中的 compilerOptions tsconfig.json

所以我将其更改为 es6 以使其在不添加依赖项的情况下正常工作。

【讨论】:

  • 我真的认为这是一个更相关的答案。 tsLib 很少直接安装在项目中。
【解决方案2】:

快速修复,简短回答

npm install tslib@latest --save


更新

我在更新 VS Code 后再次遇到了这个问题(现在使用 tslib 版本 2.2.0),再次更新解决了这个问题。

原创

我在 tslib 版本 1.14.1 中遇到了这个问题

npm update tslib --save 并没有真正做任何事情

npm install tslib@latest --save 完成了这项工作,它已更新到版本 2.2.0

【讨论】:

  • 与 1.14.1 有同样的问题。我不知道这是否是该特定版本的问题(因为 _spreadArrays 是从 1.10.0 开始就存在的),但安装 2.2.0 似乎是解决方法
  • 第二个,非常适合我,谢谢!
【解决方案3】:

对于VS Code,通知基于tsLib 导出。 其实不做任何事情都不会发生什么不好的事情,只是缺少打字而已。

解决方案: 更新 tsLib 依赖项以摆脱突出显示。就我而言,它是版本1.9.0。更新到1.10.0 解决了这个问题。

__spreadArrays1.10.0tsLib版本中添加: https://github.com/microsoft/tslib/blob/1.10.0/tslib.es6.js

更新:由于一段时间过去了,最好将版本更新为2.2.0(基于最后的cmets)或latest

【讨论】:

  • 更新 tslib 依赖是什么意思?将其添加到 package.json、开发依赖项或 devDependencies?
  • npm install tslib --save 为我完成了这项工作
【解决方案4】:

假设您的 tslib 安装正确且是最新的,如果编辑器使用不同的 Typescript 版本,您可能仍会在 VS Code 中收到此错误。

(取自zok's answer on this SO question

打开命令面板(在 Mac 上是 Cmd+Shift+P。焦点文件必须是 .ts 或 .tsx 否则不会显示更改版本的选项) 选择“TypeScript:选择 TypeScript 版本...” 它显示了VSCode的TS版本和Workspace的(项目)一个,选择工作区一个

【讨论】:

  • 这有帮助,谢谢
【解决方案5】:

如果您的 tsconfig.json 文件中有此错误可能会发生:

{ 
  "importHelpers": true,
  "target": "es5"
}

如果由于任何原因无法升级到 es6,将 importHelpers 设置为 false 将使错误消失...

【讨论】:

    【解决方案6】:

    您可能需要升级到 tslib@2.2.0

    【讨论】:

      【解决方案7】:

      只要确保在 vscode 编辑器选项底部启用了 tslint

      【讨论】:

        【解决方案8】:

        yarn 用户:yarn upgrade tslib@latest

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-01-22
          • 1970-01-01
          • 2011-11-04
          • 1970-01-01
          • 2017-09-27
          • 1970-01-01
          • 2011-08-07
          相关资源
          最近更新 更多