Khi nhìn vào mã nguồn cho quy tắc tslint, tôi đã xem qua tuyên bố sau:
if (node.parent!.kind === ts.SyntaxKind.ObjectLiteralExpression) {
return;
}
Thông báo cho người !
vận hành sau node.parent
. Hấp dẫn!
Lần đầu tiên tôi thử biên dịch tệp cục bộ với phiên bản TS (1.5.3) hiện đang cài đặt của tôi. Lỗi kết quả chỉ vào vị trí chính xác của tiếng nổ:
$ tsc --noImplicitAny memberAccessRule.ts
noPublicModifierRule.ts(57,24): error TS1005: ')' expected.
Tiếp theo tôi nâng cấp lên TS mới nhất (2.1.6), đã biên dịch nó mà không gặp vấn đề gì. Vì vậy, nó dường như là tính năng của TS 2.x. Nhưng sự dịch chuyển hoàn toàn bỏ qua tiếng nổ, dẫn đến kết quả là:
if (node.parent.kind === ts.SyntaxKind.ObjectLiteralExpression) {
return;
}
Google fu của tôi cho đến nay đã làm tôi thất bại.
Toán tử dấu chấm than của TS là gì và nó hoạt động như thế nào?