WebStorm error: expression statement is not assign

2020-02-11 17:18发布

I'm using WebStorm and I'm getting an error that I can't understand. Node.js + MongoDB.

var mongoose = require('mongoose');

mongoose.Promise = global.Promise;
mongoose.connect(' mongodb://localhost:27017/TodoApp');

var Todo = mongoose.model('Todo', {
    text: {
        type: String
    },
    completed: {
        type: Boolean
    },
    completedAt: {
        type: Number
    }
});

var newTodo = new Todo({
    text: 'Cook dinner'
});

The problem is in this block:

newTodo.save().then((doc) => {
    console.log('Saved todo', doc);
}, (e) => {
    console.log('Unable to save todo')
})

P.S.: The code works fine.

2条回答
混吃等死
2楼-- · 2020-02-11 18:00

The problem is that WebStorm will show a warning if that statement isn't doing any of the following within a function:

  • Calling another function
  • Making any sort of assignment
  • Returning a value
  • (There may be more, but those are the ones I know of)

In other words, WebStorm views that function as unnecessary and tries to help you catch unused code.

For example this will show the warning:

const arr = [1, 2];
const willShowWarning = arr.map(num => {
    num + 1;
});

Adding a return will take the warning away:

const arr = [1, 2];
const willNotShowWarning = arr.map(num => {
    return num + 1;
});

The answer is not to change WebStorm settings.

查看更多
Lonely孤独者°
3楼-- · 2020-02-11 18:21

You need to change JavaScript Language Version to ES6. Changing this setting should fix the issue:

Settings to change Javscript version to ES6

In some scenarios, you might need to restart your IDE for the changes to reflect properly.

查看更多
登录 后发表回答