簡體   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