typescript - 如何使用括号表示法检查 typescript 中的无效性

标签 typescript object null

我想检查对象中的数组是否存在,是否为空且不为空

我需要在方括号中引用该属性。

我的目标

profile = {
    myArray: [1,2,3]
}

我是这样检查的

const section = "myArray";
if(section in profile && profile[section] && profile[section].length ) { // do something}

我希望它能工作,但我在 profile[section].length 部分遇到错误,提示 object is possible null or undefined

如果我用点符号来做它就可以了

if('myArray' in profile && profile.myArray && profile.myArray.length ) { // do something}

最佳答案

像这样使用可选链

if (profile?.[section]?.length) { // do something }

参见 https://stackoverflow.com/a/58780897

关于typescript - 如何使用括号表示法检查 typescript 中的无效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56893089/

相关文章:

c++ - 是否可以防止成员函数被重新定义?

javascript - 为什么它显示为未定义/NaN?

javascript - 禁止使用 Array<T> 的数组类型

javascript - Angular:使用 MockBackend 测试 HTTP,真的需要 async() 吗?

javascript - 如何根据条件删除对象的某些属性?

python - 在Python中获取类的所有属性

sql - 仅当字段具有特殊值时才设置某些字段 'NOT NULL'

asp.net-mvc - 当从 Razor View 接收 POST 请求时,为什么我得到的是 null 而不是空字符串?

objective-c - 将变量初始化为 nil 是一种好习惯吗?

javascript - 如何将服务中的数据分配给 JSON?