“?”上的意外令牌。在打字稿中

时间:2020-02-29 06:38:53

标签: typescript vue.js

我在打字稿中有以下代码(带有vue,但这无关)。

其中“规则”可以不确定。所以我写了类似下面的东西。它在“”上给出“意外令牌”错误。在“?”之后

queryGroup.rules?.forEach

现在,这不会在vs代码中显示为错误,而是在Visual Studio中显示为错误。

我正在使用vue。因此,当我执行“ npm run build”时,它显示错误并且无法编译。

export interface QueryGroup {
    condition: Condition;
    rules?: Array<QueryRule | QueryGroup>;
}

1 个答案:

答案 0 :(得分:2)

这称为可选链接,自3.7开始在typescript中可用,并且很快也将成为ECMA脚本的一部分。

queryGroup.rules?.forEach((item) => {...})为空或未定义且不会像没有undefined那样崩溃时,语句queryGroup.rules将解析为?

如果您的IDE显示错误,则可能必须修复其配置,以便他们理解Typescript 3.7+语法。他们可能在内部使用了较早版本的打字稿,或者使用了语言级别设置。