typescript中boolean类型的自动转换问题

1.刚开始用ts,要用到一个属性作为判断条件,代码如下:
if(a.b.c.d){
//代码块
}

现在如果属性没有的话,发现ts编译不通过,请问在ts中应该怎么写

阅读 6.3k
2 个回答

默认值

默认值可以让你在属性为 undefined 时使用缺省值:

function keepWholeObject(wholeObject: {a: string, b?: number}) {

let {a, b = 1001} = wholeObject;

}
现在,即使 b 为 undefined , keepWholeObject 函数的变量 wholeObject 的属性 a 和 b 都会有值

TS本来就是强类型检查,所以使用未定义的属性肯定会通不过。
如果你确实需要避开强类型检查,可以用 a["b"]["c"]["d"] 这种方式来避开——好复杂的感觉

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题