繁体   English   中英

该语法需要一个名为 __spreadArrays 的导入助手

[英]the syntax requires an imported helper named __spreadArrays

当我尝试在 typescript 中使用传播时,例如:

.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中的红色底层很烦人。

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

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

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

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

我的 tslib 版本 1.14.1 有这个问题

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

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

如果您的 tsconfig.json 文件中包含以下内容,则可能会发生此错误:

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

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

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

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

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

(取自zok 对这个 SO question 的回答

Open Command Palette (Cmd+Shift+P on Mac. Focused file must be.ts or.tsx otherwise it won't show the option to change version) Select "TypeScript: Select TypeScript Version..." It shows VSCode's TS version and工作区的(项目)一,选择工作区一

对于 yarn 用户: yarn upgrade tslib@latest

从右侧向下 hover 在 TypeScript 旁边的花括号上,然后单击版本,它会给你几个选项,通常与项目相关,只有 select 版本,它会工作正常

您可能需要升级到 tslib@2.2.0

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

遇到这个带有依赖关系的问题,并通过使用顶级最新tslib的路径更新其tsconfig.ts来解决它。

"importHelpers": true,
"paths": {
  "tslib": [ "../tslib/tslib.d.ts" ]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM