diff --git a/src/compiler/factory.ts b/src/compiler/factory.ts index b0af0c26073..965cb5fdda5 100644 --- a/src/compiler/factory.ts +++ b/src/compiler/factory.ts @@ -1502,19 +1502,23 @@ namespace ts { : node; } - export function createTypeAliasDeclaration(name: string | Identifier, typeParameters: TypeParameterDeclaration[] | undefined, type: TypeNode) { + export function createTypeAliasDeclaration(decorators: Decorator[] | undefined, modifiers: Modifier[] | undefined, name: string | Identifier, typeParameters: TypeParameterDeclaration[] | undefined, type: TypeNode) { const node = createSynthesizedNode(SyntaxKind.TypeAliasDeclaration); + node.decorators = asNodeArray(decorators); + node.modifiers = asNodeArray(modifiers); node.name = asName(name); node.typeParameters = asNodeArray(typeParameters); node.type = type; return node; } - export function updateTypeAliasDeclaration(node: TypeAliasDeclaration, name: Identifier, typeParameters: TypeParameterDeclaration[] | undefined, type: TypeNode) { - return node.name !== name + export function updateTypeAliasDeclaration(node: TypeAliasDeclaration, decorators: Decorator[] | undefined, modifiers: Modifier[] | undefined, name: Identifier, typeParameters: TypeParameterDeclaration[] | undefined, type: TypeNode) { + return node.decorators !== decorators + || node.modifiers !== modifiers + || node.name !== name || node.typeParameters !== typeParameters || node.type !== type - ? updateNode(createTypeAliasDeclaration(name, typeParameters, type), node) + ? updateNode(createTypeAliasDeclaration(decorators, modifiers, name, typeParameters, type), node) : node; } diff --git a/src/compiler/visitor.ts b/src/compiler/visitor.ts index 628b14794ea..fa642b7a3c4 100644 --- a/src/compiler/visitor.ts +++ b/src/compiler/visitor.ts @@ -701,6 +701,8 @@ namespace ts { case SyntaxKind.TypeAliasDeclaration: return updateTypeAliasDeclaration(node, + nodesVisitor((node).decorators, visitor, isDecorator), + nodesVisitor((node).modifiers, visitor, isModifier), visitNode((node).name, visitor, isIdentifier), nodesVisitor((node).typeParameters, visitor, isTypeParameter), visitNode((node).type, visitor, isTypeNode));