Babel与ES2015不同,但Stage0预设

时间:2017-10-17 09:20:59

标签: javascript babeljs

我遇到了一个问题,即使用babel和ES2015预设来转换以下代码(redux reducer)。我(错误地)假设这是可以转换的代码。

const todos = (state = [], action) => {
    switch (action.type) {
        case 'TOGGLE_TODO':
        return state.map(todo =>
            (todo.id === action.id)
                ? {
                ...todo,
                completed: !todo.completed
                }
                : todo
            )

        default:
        return state
    }
}

export default todos

错误消息

repl: Unexpected token (7:16)
   5 |             (todo.id === action.id)
   6 |                 ? {
>  7 |                 ...todo,

使用Stage0预设进行透明处理效果很好。我确实使用Babel online验证了这种行为。

2 个答案:

答案 0 :(得分:1)

因为preset-2016不支持对象休息传播。现在是第3阶段

答案 1 :(得分:0)

您正在使用属于第3阶段的object spread运算符。