feat(36080): forbid to use JSDoc visibility modifiers in private fields (#46056)

This commit is contained in:
Oleksandr T
2021-09-30 19:48:56 +03:00
committed by GitHub
parent e4d9282b4b
commit e0f436c628
6 changed files with 437 additions and 0 deletions

View File

@@ -35861,6 +35861,13 @@ namespace ts {
}
}
function checkJSDocAccessibilityModifiers(node: JSDocPublicTag | JSDocProtectedTag | JSDocPrivateTag): void {
const host = getJSDocHost(node);
if (host && isPrivateIdentifierClassElementDeclaration(host)) {
error(node, Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);
}
}
function getIdentifierFromEntityNameExpression(node: Identifier | PropertyAccessExpression): Identifier | PrivateIdentifier;
function getIdentifierFromEntityNameExpression(node: Expression): Identifier | PrivateIdentifier | undefined;
function getIdentifierFromEntityNameExpression(node: Expression): Identifier | PrivateIdentifier | undefined {
@@ -39854,6 +39861,10 @@ namespace ts {
return;
case SyntaxKind.JSDocTypeExpression:
return checkSourceElement((node as JSDocTypeExpression).type);
case SyntaxKind.JSDocPublicTag:
case SyntaxKind.JSDocProtectedTag:
case SyntaxKind.JSDocPrivateTag:
return checkJSDocAccessibilityModifiers(node as JSDocPublicTag | JSDocProtectedTag | JSDocPrivateTag);
case SyntaxKind.IndexedAccessType:
return checkIndexedAccessType(node as IndexedAccessTypeNode);
case SyntaxKind.MappedType: