在我的组件中,我有这个函数:
getData(): DataObj {
const data = this.route.snapshot.paramMap.get('data');
const obj = JSON.parse(data) as DataObj
return obj;
}
但行
const obj = JSON.parse(data) as DataObj
给出编译错误
Type 'null' is not assignable to type 'string'
抱怨"数据"。在严格模式下解析并返回对象的正确方式是什么?
我用的是Angular 14。
据我所知,Type窄化应该是你的朋友。
更早处理null
,使类型窄化工作
getData(): DataObj {
const data = this.route.snapshot.paramMap.get('data');
if (data === null) return null; // you can return whatever you like
const obj = JSON.parse(data) as DataObj; // now this line should not complain about `null`
return obj;
}