Thỉnh thoảng, tôi nhận được lỗi TSLint "chặn trống". Điều này xảy ra, ví dụ: khi tôi chuyển một cuộc gọi lại không có chức năng đến một chức năng:Tại sao TSLint và JSLint báo cáo các khối trống?
doSomething(() => {});
Từ những gì tôi đọc, JSLint dường như không thay đổi, nhưng tôi đã không xác minh điều đó.
Tôi thấy các tập quán này hoàn toàn hợp lệ, vì vậy tôi đã cố gắng tìm lý do tại sao các khối trống được xem là xấu. Nhưng điều duy nhất tôi có thể tìm thấy (ví dụ: this answer) là hướng dẫn để thêm return;
để tránh lỗi. Đây là không phải những gì tôi muốn làm trong mọi cuộc gọi lại trống.
Tại sao TSLint báo cáo ở trên khối trống là sự cố? Có lý do nào khiến tôi không nên vô hiệu hóa séc không?
Không bao giờ được sử dụng; chỉ cần suy nghĩ to: có thể nào là thời gian mà TSLint phàn nàn là khi nó nghĩ hàm _should_ trả về một giá trị và hàm no-op của bạn không làm như vậy? Bạn có lẽ có thể định nghĩa một hàm no-op rõ ràng và chỉ cần chuyển tên của nó trong kiểu gọi này. – TripeHound
@TripeHound Không, TSLint than phiền ngay cả khi tôi chỉ định một loại rõ ràng của '(() => void)' cho cuộc gọi lại. Về noop: Tôi chỉ phát hiện ra rằng lodash đã định nghĩa một: '_.noop'.Đây là giải pháp sạch nhất ... – theDmi
Bạn cũng có thể bọc '{}' trong dấu ngoặc đơn, ví dụ: '() => ({})' không gây ra cảnh báo "khối trống" với TSLint – danwellman