该语法需要一个名为__ preadArray 的导入帮助器

当我试图使用打字机打字时,比如:

.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中很烦人。

66024 次浏览

对于 VS Code,通知是基于 自由导出的。 其实什么坏事都不会发生,只是缺乏打字而已。

解决方案: 更新 自由依赖项以去除突出显示。在我的情况下,它是版本 1.9.0。更新到 1.10.0解决了这个问题。

__spreadArrays是在 1.10.0 tsLib版本中加入的: Https://github.com/microsoft/tslib/blob/1.10.0/tslib.es6.js

更新: 由于已经过去了一段时间,最好将版本更新为 2.2.0(根据最后的评论)或 latest

您可能需要升级到 tslib@2.2.0

快速解决,简短回答

npm install tslib@latest --save


更新

在更新 VS 代码之后,我又遇到了这个问题(现在是 tslib 版本2.2.0) ,再次更新修复了这个问题。

原创的

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

npm update tslib --save实际上什么也没做

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

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

假设您的 tslib 安装正确并且是最新的,如果编辑器使用的是不同的类型脚本版本,那么在 VS Code 中仍然可能出现这个错误。

(摘自 佐克对这个问题的回答)

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

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

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

纱线用户: yarn upgrade tslib@latest

如果在 tsconfig.json 文件中包含:

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

如果由于某种原因您无法升级到 es6,将 import Helpers 设置为 false 将使错误消失..。

从右边往下 将鼠标悬停在 TypeScript 旁边的花括号上,然后单击 version 它会给你一些选择,一般与项目有关 只要选择版本,它将工作正常

遇到这个问题与依赖项,并解决了它通过更新其 tsconfig.ts的路径,以顶级最新的 tslib

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