我在打字稿中有以下代码(带有vue,但这无关)。
其中“规则”可以不确定。所以我写了类似下面的东西。它在“”上给出“意外令牌”错误。在“?”之后
queryGroup.rules?.forEach
现在,这不会在vs代码中显示为错误,而是在Visual Studio中显示为错误。
我正在使用vue。因此,当我执行“ npm run build”时,它显示错误并且无法编译。
export interface QueryGroup {
condition: Condition;
rules?: Array<QueryRule | QueryGroup>;
}
答案 0 :(得分:2)
这称为可选链接,自3.7开始在typescript中可用,并且很快也将成为ECMA脚本的一部分。
当queryGroup.rules?.forEach((item) => {...})
为空或未定义且不会像没有undefined
那样崩溃时,语句queryGroup.rules
将解析为?
。
如果您的IDE显示错误,则可能必须修复其配置,以便他们理解Typescript 3.7+语法。他们可能在内部使用了较早版本的打字稿,或者使用了语言级别设置。