When I'm trying to use spreading in typescript like:
.reduce((unique, x) => {
unique.some(element => element.machineName === x.machineName) ? unique : [...unique, x];
}
I get warning with red marking from Visual Studio Code
:
the syntax requires an imported helper named __spreadArrays
typescript version: "2.3.4"
target: "es5"
I think in later versions this issue is fixed, but right now I can't migrate. How can I fix it?
Note: Project gets compiled fine and works. But red underlying in VS Code
in annoying.
In my case the problem it was target: "es5"
in compilerOptions
at tsconfig.json
.
So I change it to es6
to get it works without adding dependency.
npm install tslib@latest --save
I got this issue again (now with tslib version 2.2.0) after updating VS Code, again updating fixed the issue.
I had this issue with tslib version 1.14.1
npm update tslib --save
didn't really do anything
npm install tslib@latest --save
did the job, it updated to version 2.2.0
For VS Code
the notification is based on the tsLib exports.
Actually nothing bad happens without doing anything, it is just lack of typing.
Solution: Update tsLib dependency to get rid of the highlighting. In my case it was version 1.9.0
. Update to 1.10.0
solved the issue.
__spreadArrays
is added in 1.10.0
tsLib
version:
https://github.com/microsoft/tslib/blob/1.10.0/tslib.es6.js
Update: Since some time passed, it is better to update version to 2.2.0
(based on last comments) or the latest
.
Assuming your tslib is installed correctly and up to date, you might still get this error in VS Code if the editor is using a different Typescript version.
(taken from zok's answer on this 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 Workspace's (project) one, pick the workspace one
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With