Tôi có một type:
type tSelectProtected = {
handleSelector?: string,
data?: tSelectDataItem[],
wrapperEle?: HTMLElement,
inputEle?: HTMLElement,
listEle?: HTMLElement,
resultEle?: HTMLElement,
maxVisibleListItems?: number
}
Tôi khai báo một biến mô-đun toàn cầu:
var $protected : tSelectProtected = {};
Tôi đang gán giá trị phù hợp trong function1()phạm vi:
$protected.listEle = document.createElement('DIV');
Sau này trong function2()phạm vi, tôi đang gọi:
$protected.listEle.classList.add('visible');
Tôi đang gặp lỗi TypeScript:
error TS2533: Object is possibly 'null' or 'undefined'
Tôi biết rằng tôi có thể kiểm tra rõ ràng bằng cách sử dụng if ($protected.listEle) {$protected.listEle}để làm dịu trình biên dịch nhưng điều này dường như rất khó xử đối với hầu hết các trường hợp không tầm thường.
Làm thế nào tình huống này có thể hoặc nên được xử lý mà không vô hiệu hóa kiểm tra trình biên dịch TS?

nulls trong "vanilla" JavaScript để khởi tạo các biến hoặc giá trị thuộc tính. Điều này cho tôi câu trả lời thẳng nếu tồn tại var hoặc prop nhưng nó "chưa có giá trị sử dụng được" hoặc "giá trị đã bị xóa tại một số điểm thực hiện". Đó chỉ là theo quy ước. Đây có thể không phải là cách tiếp cận tốt nhất trong TypeScript như tôi có thể thấy bằng các câu trả lời ở đây. Cảm ơn bạn đã suy nghĩ của bạn.