在查看tslint规则的源代码时,我遇到了以下语句:
if (node.parent!.kind === ts.SyntaxKind.ObjectLiteralExpression) {
return;
}
注意node.parent
后面的!
号操作员.有趣的
我首先try 使用当前安装的TS(1.5.3)版本在本地编译该文件.由此产生的误差指向了爆炸的确切位置:
$ tsc --noImplicitAny memberAccessRule.ts
noPublicModifierRule.ts(57,24): error TS1005: ')' expected.
接下来,我升级到了最新的TS(2.1.6),它编译后没有问题.所以这似乎是TS 2的特点.x、 But透明完全忽略了爆炸,导致以下JS:
if (node.parent.kind === ts.SyntaxKind.ObjectLiteralExpression) {
return;
}
到目前为止,我的谷歌fu让我失望.
What is TS's exclamation mark operator, and how does it work?