我如何从路由paramMap解析字段并将其作为对象返回?



在我的组件中,我有这个函数:

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;
}

相关内容

  • 没有找到相关文章

最新更新