2013-09-25 33 views
6

Tôi đang chạy mã của tôi qua JSHint, và tôi đánh lỗi này:chuyển đổi mùa thu qua bị bỏ qua bởi JSHint

Expected a break statement before case

On khối mã này:

switch(true) 
{ 
    // Renames skill1=abc to section_8_1_body=abc 
    case Major === 0 && Minor === 0 && Patch < 433: 
     upgraded = upgraded.replace(/(\s+)skill(\d)=/gm, '$1section_8_$2_body='); 
    /*falls through*/ 

    // Example 
    case Major === 0 && Minor === 0 && Patch < 442: 
     console.log('test'); 
    /*falls through*/ 
} 

Các mã kiểm tra thông tin phiên bản cho một tệp và nâng cấp nó để tương thích với phiên bản phần mềm mới nhất. Do đó, nó có ý định để các thông tin case bị gián đoạn, do đó một tệp có thể được nâng cấp qua nhiều phiên bản.

Tuy nhiên, tôi vẫn nhận được thông báo lỗi, với/*falls through* đã thêm, mặc dù it is supposedly valid.

Làm cách nào để tôi có thể cho phép case giây của mình thành công trong JSHint?

Trả lời

16

JSHint có vẻ như mong đợi nhận xét nằm trên dòng ngay trước case.

// Example 
/* falls through */ 
case Major === 0 && Minor === 0 && Patch < 442: 
    console.log('test'); 

Theo mô tả in the source code, nó sẽ không thừa nhận những nhận xét khác:

// You can tell JSHint that you don't use break intentionally by 
// adding a comment /* falls through */ on a line just before 
// the next `case`. 
+3

Ah, nhờ Jonathan! Tôi đã thử xóa dòng '// Example' nhưng tôi vẫn gặp lỗi tương tự. Vấn đề là dòng trống giữa '/ * rơi qua * /' và 'trường hợp'. –

Các vấn đề liên quan