the syntax requires an imported helper named __spreadArrays

Alex Vovchuk picture Alex Vovchuk · Oct 10, 2019 · Viewed 16k times · Source

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.

Answer

Alex Vovchuk picture Alex Vovchuk · Dec 19, 2019

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.