我正在尝试在 Typescript + React Native 中进行可选链接。
假设我有以下接口:
interface Bar {
y: number
}
interface Foo {
x?: Bar
}
我尝试运行以下命令:
const test: Foo = {x: {y: 3}};
console.log(test.x?.y);
VSCode 会在 ?.
下显示错误: Expression expected.ts(1109)
你知道为什么会发生这种情况或者我应该如何解决它?谢谢。
原文由 Toma Radu-Petrescu 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于那些想知道的人,自 2019 年 10 月起,TypeScript 3.7(Beta)现在可以使用可选链接(
?
运算符)。您可以通过运行以下命令来安装该版本:如 发行说明 中所述,这就是您可以使用运算符的方式。
这相当于
除了可选链接之外,其他有趣的功能包括 Nullish Coalescing(
??
运算符)。更新(2019 年 11 月)
TypeScript 的可选链现在正式可用。安装最新版本的打字稿应该允许您访问很酷的新功能。
对于那些正在使用 VS Code 的人,请参阅 Austin 的关于让它与新的 TypeScript 版本一起工作的出色答案。
对于那些正在使用 WebStorm 的人,您需要配置 TypeScript 以使用项目安装的 TypeScript 版本。
此外,如果您使用的是旧版本的 WebStorm,则在尝试使用 Nullish Coaslescing 运算符 (
??
) 时可能会遇到错误/警告。要解决此问题,您需要安装 WebStorm 2019.2.4 或任何比上述更新的版本。