WebStorm - Using Spread Operator Returns: error TS2488: Type '{}' must have a '[Symbol.iterator]()' method...












1















I am experiencing this annoying TypeScript error:




error TS2488: Type '{}' must have a 'Symbol.iterator' method that returns an iterator.




As you can see in my code I am using the spread operator. After some researches I have found that I had to update mytsconfig.json with "target": "es6" but nothing changed. What am I missing?



Function



 formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files).reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\/, "")
}
], )
}


TS CONFIG



{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}


TS CONFIG APP (if it helps)



{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"types": ,
"moduleResolution": "node",
"target": "es6",
},
"exclude": [
"src/test.ts",
"**/*.spec.ts"
]
}









share|improve this question

























  • Can't reproduce your issue with the tsconfig you provided

    – Titian Cernicova-Dragomir
    Nov 27 '18 at 9:22











  • So you mean that the problem is not in my tsconfig? Maybe is Webstorm that I am using?

    – Nad G
    Nov 27 '18 at 9:23











  • Not sure where the problem is .. I would try to run the compiler outside the IDE to see if it's an IDE problem. I used your tsconfigs in VSCode, it seems to work

    – Titian Cernicova-Dragomir
    Nov 27 '18 at 9:26











  • Ok, I have updated the question indicating that it may caused by Webstorm. I'll try your suggestion too, thanks

    – Nad G
    Nov 27 '18 at 9:30
















1















I am experiencing this annoying TypeScript error:




error TS2488: Type '{}' must have a 'Symbol.iterator' method that returns an iterator.




As you can see in my code I am using the spread operator. After some researches I have found that I had to update mytsconfig.json with "target": "es6" but nothing changed. What am I missing?



Function



 formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files).reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\/, "")
}
], )
}


TS CONFIG



{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}


TS CONFIG APP (if it helps)



{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"types": ,
"moduleResolution": "node",
"target": "es6",
},
"exclude": [
"src/test.ts",
"**/*.spec.ts"
]
}









share|improve this question

























  • Can't reproduce your issue with the tsconfig you provided

    – Titian Cernicova-Dragomir
    Nov 27 '18 at 9:22











  • So you mean that the problem is not in my tsconfig? Maybe is Webstorm that I am using?

    – Nad G
    Nov 27 '18 at 9:23











  • Not sure where the problem is .. I would try to run the compiler outside the IDE to see if it's an IDE problem. I used your tsconfigs in VSCode, it seems to work

    – Titian Cernicova-Dragomir
    Nov 27 '18 at 9:26











  • Ok, I have updated the question indicating that it may caused by Webstorm. I'll try your suggestion too, thanks

    – Nad G
    Nov 27 '18 at 9:30














1












1








1








I am experiencing this annoying TypeScript error:




error TS2488: Type '{}' must have a 'Symbol.iterator' method that returns an iterator.




As you can see in my code I am using the spread operator. After some researches I have found that I had to update mytsconfig.json with "target": "es6" but nothing changed. What am I missing?



Function



 formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files).reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\/, "")
}
], )
}


TS CONFIG



{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}


TS CONFIG APP (if it helps)



{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"types": ,
"moduleResolution": "node",
"target": "es6",
},
"exclude": [
"src/test.ts",
"**/*.spec.ts"
]
}









share|improve this question
















I am experiencing this annoying TypeScript error:




error TS2488: Type '{}' must have a 'Symbol.iterator' method that returns an iterator.




As you can see in my code I am using the spread operator. After some researches I have found that I had to update mytsconfig.json with "target": "es6" but nothing changed. What am I missing?



Function



 formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files).reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\/, "")
}
], )
}


TS CONFIG



{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es6",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}


TS CONFIG APP (if it helps)



{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es2015",
"types": ,
"moduleResolution": "node",
"target": "es6",
},
"exclude": [
"src/test.ts",
"**/*.spec.ts"
]
}






angular typescript ecmascript-6 webstorm






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 27 '18 at 19:09









LazyOne

108k21242264




108k21242264










asked Nov 27 '18 at 9:08









Nad GNad G

127312




127312













  • Can't reproduce your issue with the tsconfig you provided

    – Titian Cernicova-Dragomir
    Nov 27 '18 at 9:22











  • So you mean that the problem is not in my tsconfig? Maybe is Webstorm that I am using?

    – Nad G
    Nov 27 '18 at 9:23











  • Not sure where the problem is .. I would try to run the compiler outside the IDE to see if it's an IDE problem. I used your tsconfigs in VSCode, it seems to work

    – Titian Cernicova-Dragomir
    Nov 27 '18 at 9:26











  • Ok, I have updated the question indicating that it may caused by Webstorm. I'll try your suggestion too, thanks

    – Nad G
    Nov 27 '18 at 9:30



















  • Can't reproduce your issue with the tsconfig you provided

    – Titian Cernicova-Dragomir
    Nov 27 '18 at 9:22











  • So you mean that the problem is not in my tsconfig? Maybe is Webstorm that I am using?

    – Nad G
    Nov 27 '18 at 9:23











  • Not sure where the problem is .. I would try to run the compiler outside the IDE to see if it's an IDE problem. I used your tsconfigs in VSCode, it seems to work

    – Titian Cernicova-Dragomir
    Nov 27 '18 at 9:26











  • Ok, I have updated the question indicating that it may caused by Webstorm. I'll try your suggestion too, thanks

    – Nad G
    Nov 27 '18 at 9:30

















Can't reproduce your issue with the tsconfig you provided

– Titian Cernicova-Dragomir
Nov 27 '18 at 9:22





Can't reproduce your issue with the tsconfig you provided

– Titian Cernicova-Dragomir
Nov 27 '18 at 9:22













So you mean that the problem is not in my tsconfig? Maybe is Webstorm that I am using?

– Nad G
Nov 27 '18 at 9:23





So you mean that the problem is not in my tsconfig? Maybe is Webstorm that I am using?

– Nad G
Nov 27 '18 at 9:23













Not sure where the problem is .. I would try to run the compiler outside the IDE to see if it's an IDE problem. I used your tsconfigs in VSCode, it seems to work

– Titian Cernicova-Dragomir
Nov 27 '18 at 9:26





Not sure where the problem is .. I would try to run the compiler outside the IDE to see if it's an IDE problem. I used your tsconfigs in VSCode, it seems to work

– Titian Cernicova-Dragomir
Nov 27 '18 at 9:26













Ok, I have updated the question indicating that it may caused by Webstorm. I'll try your suggestion too, thanks

– Nad G
Nov 27 '18 at 9:30





Ok, I have updated the question indicating that it may caused by Webstorm. I'll try your suggestion too, thanks

– Nad G
Nov 27 '18 at 9:30












1 Answer
1






active

oldest

votes


















0














I fixed the issue. I noticed that in 'lib' tsconfig.json file "es2015" wasn't indicated (as suggested inthis answer), but that, for some reason, didn't change anything.



So I went up to the function 'formatFileName(e)' and assigned to this.test the array of files, and just after this declaration I applied the reduce function to do my operations.



FIXED FUNCTION



 formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files)
this.test.reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\/, "")
}
], )
}





share|improve this answer
























  • I hope you're assigning the return value of reduce() to something..

    – Patrick Roberts
    Nov 27 '18 at 19:41











  • @PatrickRoberts yes, of course xD

    – Nad G
    Nov 28 '18 at 8:28











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53496101%2fwebstorm-using-spread-operator-returns-error-ts2488-type-must-have-a%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














I fixed the issue. I noticed that in 'lib' tsconfig.json file "es2015" wasn't indicated (as suggested inthis answer), but that, for some reason, didn't change anything.



So I went up to the function 'formatFileName(e)' and assigned to this.test the array of files, and just after this declaration I applied the reduce function to do my operations.



FIXED FUNCTION



 formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files)
this.test.reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\/, "")
}
], )
}





share|improve this answer
























  • I hope you're assigning the return value of reduce() to something..

    – Patrick Roberts
    Nov 27 '18 at 19:41











  • @PatrickRoberts yes, of course xD

    – Nad G
    Nov 28 '18 at 8:28
















0














I fixed the issue. I noticed that in 'lib' tsconfig.json file "es2015" wasn't indicated (as suggested inthis answer), but that, for some reason, didn't change anything.



So I went up to the function 'formatFileName(e)' and assigned to this.test the array of files, and just after this declaration I applied the reduce function to do my operations.



FIXED FUNCTION



 formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files)
this.test.reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\/, "")
}
], )
}





share|improve this answer
























  • I hope you're assigning the return value of reduce() to something..

    – Patrick Roberts
    Nov 27 '18 at 19:41











  • @PatrickRoberts yes, of course xD

    – Nad G
    Nov 28 '18 at 8:28














0












0








0







I fixed the issue. I noticed that in 'lib' tsconfig.json file "es2015" wasn't indicated (as suggested inthis answer), but that, for some reason, didn't change anything.



So I went up to the function 'formatFileName(e)' and assigned to this.test the array of files, and just after this declaration I applied the reduce function to do my operations.



FIXED FUNCTION



 formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files)
this.test.reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\/, "")
}
], )
}





share|improve this answer













I fixed the issue. I noticed that in 'lib' tsconfig.json file "es2015" wasn't indicated (as suggested inthis answer), but that, for some reason, didn't change anything.



So I went up to the function 'formatFileName(e)' and assigned to this.test the array of files, and just after this declaration I applied the reduce function to do my operations.



FIXED FUNCTION



 formatFileName(e) {
let files = e.target.files;
this.test = Array.from(files)
this.test.reduce((acc, cur) => [
...acc, {
name: cur.name.replace(/^.*\/, "")
}
], )
}






share|improve this answer












share|improve this answer



share|improve this answer










answered Nov 27 '18 at 10:14









Nad GNad G

127312




127312













  • I hope you're assigning the return value of reduce() to something..

    – Patrick Roberts
    Nov 27 '18 at 19:41











  • @PatrickRoberts yes, of course xD

    – Nad G
    Nov 28 '18 at 8:28



















  • I hope you're assigning the return value of reduce() to something..

    – Patrick Roberts
    Nov 27 '18 at 19:41











  • @PatrickRoberts yes, of course xD

    – Nad G
    Nov 28 '18 at 8:28

















I hope you're assigning the return value of reduce() to something..

– Patrick Roberts
Nov 27 '18 at 19:41





I hope you're assigning the return value of reduce() to something..

– Patrick Roberts
Nov 27 '18 at 19:41













@PatrickRoberts yes, of course xD

– Nad G
Nov 28 '18 at 8:28





@PatrickRoberts yes, of course xD

– Nad G
Nov 28 '18 at 8:28




















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53496101%2fwebstorm-using-spread-operator-returns-error-ts2488-type-must-have-a%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

Calculate evaluation metrics using cross_val_predict sklearn

Insert data from modal to MySQL (multiple modal on website)