Ketika melihat kode sumber untuk aturan tslint, saya menemukan pernyataan berikut:
if (node.parent!.kind === ts.SyntaxKind.ObjectLiteralExpression) {
return;
}
Perhatikan !
operator setelahnya node.parent
. Menarik!
Saya pertama kali mencoba mengkompilasi file secara lokal dengan versi TS saya yang terinstal (1.5.3). Kesalahan yang dihasilkan menunjuk ke lokasi tepat bang:
$ tsc --noImplicitAny memberAccessRule.ts
noPublicModifierRule.ts(57,24): error TS1005: ')' expected.
Selanjutnya saya upgrade ke TS terbaru (2.1.6), yang mengkompilasinya tanpa masalah. Jadi sepertinya fitur TS 2.x. Tetapi transpilasi mengabaikan bang sepenuhnya, menghasilkan JS berikut:
if (node.parent.kind === ts.SyntaxKind.ObjectLiteralExpression) {
return;
}
Google fu saya sejauh ini telah mengecewakan saya.
Apa yang dimaksud dengan tanda seru TS, dan bagaimana cara kerjanya?