diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f5ff6a8c7c7..8ca7ba85056 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5186,24 +5186,16 @@ namespace ts { case SyntaxKind.ClassDeclaration: case SyntaxKind.ClassExpression: case SyntaxKind.TypeLiteral: - resolveDynamicMembersOfClassOrInterfaceOrTypeLiteralNode(node, symbolTable); + resolveDynamicMembersOfNode(node, (node).members, symbolTable); break; case SyntaxKind.ObjectLiteralExpression: - resolveDynamicMembersOfObjectLiteralExpression(node, symbolTable); + resolveDynamicMembersOfNode(node, (node).properties, symbolTable); break; } } - function resolveDynamicMembersOfClassOrInterfaceOrTypeLiteralNode(node: ClassLikeDeclaration | InterfaceDeclaration | TypeLiteralNode, symbolTable: SymbolTable) { - for (const member of node.members) { - if (member.name && isComputedPropertyName(member.name) && isEntityNameExpression(member.name.expression)) { - bindDynamicMember(symbolTable, node.symbol, member); - } - } - } - - function resolveDynamicMembersOfObjectLiteralExpression(node: ObjectLiteralExpression, symbolTable: SymbolTable) { - for (const member of node.properties) { + function resolveDynamicMembersOfNode(node: Declaration, members: NodeArray, symbolTable: SymbolTable) { + for (const member of members) { if (member.name && isComputedPropertyName(member.name) && isEntityNameExpression(member.name.expression)) { bindDynamicMember(symbolTable, node.symbol, member); }