2017-07-17 1 views
0

iamは私のレデューサーでreact-reduxアプリケーションをビルドしました。私はbabel es2015とstage-2を使ってwebpackでbundle.jsをコンパイルした後にこのエラーを受けました。ブロックコード、なぜ私は二重宣言のエラーを取得するのですか? 私の減速は、そのあなたがこのような中括弧で各ケースの枝をラップする必要がbabel transpilerとconstスコープ

function print(foo){ 
    switch(foo){ 
    case 'test': 
     const bar = 2; 
     console.log(bar+1); 
     break; 
    case 'test1': 
     const bar = 1; 
     console.log(bar+2); 
     break; 
    default: 
     console.log('no match') 
     break; 
    } 
} 
print('test'); 
+0

あなたのコードのどこに '{' '}'ブロックがありますか? – Bergi

答えて

1

上記のこの関数のよう:switch文の中

function print(foo){ 
    switch(foo){ 
    case 'test': { 
     const bar = 2; 
     console.log(bar+1); 
     break; 
    } 
    case 'test1': { 
     const bar = 1; 
     console.log(bar+2); 
     break; 
    } 
    } 
} 

すべてが1つのブロックスコープです。中括弧は各ケースを独自のブロックスコープ内に置いています - それらがなければ、同じスコープ内でconstを再宣言しているのでエラーになります。

関連する問題