WebStorm - Using Spread Operator Returns: error TS2488: Type '{}' must have a '[Symbol.iterator]()' method...
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
add a comment |
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
Can't reproduce your issue with thetsconfig
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
add a comment |
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
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
angular typescript ecmascript-6 webstorm
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 thetsconfig
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
add a comment |
Can't reproduce your issue with thetsconfig
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
add a comment |
1 Answer
1
active
oldest
votes
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(/^.*\/, "")
}
], )
}
I hope you're assigning the return value ofreduce()
to something..
– Patrick Roberts
Nov 27 '18 at 19:41
@PatrickRoberts yes, of course xD
– Nad G
Nov 28 '18 at 8:28
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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(/^.*\/, "")
}
], )
}
I hope you're assigning the return value ofreduce()
to something..
– Patrick Roberts
Nov 27 '18 at 19:41
@PatrickRoberts yes, of course xD
– Nad G
Nov 28 '18 at 8:28
add a comment |
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(/^.*\/, "")
}
], )
}
I hope you're assigning the return value ofreduce()
to something..
– Patrick Roberts
Nov 27 '18 at 19:41
@PatrickRoberts yes, of course xD
– Nad G
Nov 28 '18 at 8:28
add a comment |
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(/^.*\/, "")
}
], )
}
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(/^.*\/, "")
}
], )
}
answered Nov 27 '18 at 10:14
Nad GNad G
127312
127312
I hope you're assigning the return value ofreduce()
to something..
– Patrick Roberts
Nov 27 '18 at 19:41
@PatrickRoberts yes, of course xD
– Nad G
Nov 28 '18 at 8:28
add a comment |
I hope you're assigning the return value ofreduce()
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
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
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