首页 > 解决方案 > 打字稿如何使用可选链接

问题描述

为什么我在这个值分配上得到一个错误;

state.user?.weight.budget = budget;

在此处输入图像描述

我试过这样的一对

(state.user?.weight.budget ?? 0) = budget;

那也行不通。我做错了什么。我不明白

先感谢您。

标签: typescriptredux-toolkit

解决方案


可选链不支持赋值。对该功能进行了讨论,但他们认为它超出了最初提案的范围,并且可能“稍后”实施。请特别查看此评论

您的后一个示例(state.user?.weight.budget ?? 0) = budget;也不起作用,因为您不仅要尝试进行可选的链接分配,而且还要尝试分配给可能不是变量或变量属性的表达式(0 = budget?)。

目前,在存在可能未定义的属性的情况下进行赋值的唯一方法user是通过没有可选链接的控制流,如下所示:

if (state.user != null) state.user.weight.budget = budget;

或一些等效的测试和可能分配代码。好的,希望有帮助;祝你好运!

Playground 代码链接


推荐阅读