在查看tslint规则的源代码时,我遇到了以下语句:
if (node.parent!.kind === ts.SyntaxKind.ObjectLiteralExpression) {
return;
}
之后请注意!
运算符node.parent
。有趣!
我首先尝试使用当前安装的TS(1.5.3)版本在本地编译文件。产生的错误指出了爆炸的确切位置:
$ tsc --noImplicitAny memberAccessRule.ts
noPublicModifierRule.ts(57,24): error TS1005: ')' expected.
接下来,我升级到了最新的TS(2.1.6),可以毫无问题地对其进行编译。因此,这似乎是TS 2.x的功能。但是编译完全忽略了爆炸,导致出现以下JS:
if (node.parent.kind === ts.SyntaxKind.ObjectLiteralExpression) {
return;
}
到目前为止,我的Google赋使我失败了。
TS的感叹号运算符是什么,它如何工作?