首页 > 解决方案 > 对象可能是“空”

问题描述

我想检查一个对象是否为空,正在做

let hostels = null;
if (hostels[0] !== null && hostels[0].name !== null) {
}

但我有这个错误:

 error TS2531: Object is possibly 'null'.

标签: javascriptnode.jstypescript

解决方案


您收到此错误是因为您在对象不是数组时尝试访问数组的元素,它为空。你的支票本质上是说null[0] !== null

正如 Sourabh Somani 建议的那样,检查对象是否“虚假”应该可以解决问题

let hostels = null;
if (hostels && hostels[0] !== null && hostels[0].name !== null) {
}

“假”检查将确定您的对象是否为假值,例如:

let hostels = null;
if(hostels) {  } // false

let hostels = undefined;
if(hostels) { } // false 

let hostels = [];
if(hostels) { } // true

推荐阅读