diff --git a/src/compiler/declarationEmitter.ts b/src/compiler/declarationEmitter.ts
index 5c44bf7b371..32a51de899e 100644
--- a/src/compiler/declarationEmitter.ts
+++ b/src/compiler/declarationEmitter.ts
@@ -750,6 +750,8 @@ namespace ts {
}
function writeTypeAliasDeclaration(node: TypeAliasDeclaration) {
+ let prevEnclosingDeclaration = enclosingDeclaration;
+ enclosingDeclaration = node;
emitJsDocComments(node);
emitModuleElementDeclarationFlags(node);
write("type ");
@@ -759,6 +761,7 @@ namespace ts {
emitTypeWithNewGetSymbolAccessibilityDiagnostic(node.type, getTypeAliasDeclarationVisibilityError);
write(";");
writeLine();
+ enclosingDeclaration = prevEnclosingDeclaration;
function getTypeAliasDeclarationVisibilityError(symbolAccesibilityResult: SymbolAccessiblityResult): SymbolAccessibilityDiagnostic {
return {
diff --git a/tests/baselines/reference/typeAliasDeclarationEmit2.js b/tests/baselines/reference/typeAliasDeclarationEmit2.js
new file mode 100644
index 00000000000..4bb1bd3efd9
--- /dev/null
+++ b/tests/baselines/reference/typeAliasDeclarationEmit2.js
@@ -0,0 +1,13 @@
+//// [typeAliasDeclarationEmit2.ts]
+
+export type A = { value: a };
+
+//// [typeAliasDeclarationEmit2.js]
+define(["require", "exports"], function (require, exports) {
+});
+
+
+//// [typeAliasDeclarationEmit2.d.ts]
+export declare type A = {
+ value: a;
+};
diff --git a/tests/baselines/reference/typeAliasDeclarationEmit2.symbols b/tests/baselines/reference/typeAliasDeclarationEmit2.symbols
new file mode 100644
index 00000000000..aebd457d24e
--- /dev/null
+++ b/tests/baselines/reference/typeAliasDeclarationEmit2.symbols
@@ -0,0 +1,8 @@
+=== tests/cases/compiler/typeAliasDeclarationEmit2.ts ===
+
+export type A = { value: a };
+>A : Symbol(A, Decl(typeAliasDeclarationEmit2.ts, 0, 0))
+>a : Symbol(a, Decl(typeAliasDeclarationEmit2.ts, 1, 14))
+>value : Symbol(value, Decl(typeAliasDeclarationEmit2.ts, 1, 20))
+>a : Symbol(a, Decl(typeAliasDeclarationEmit2.ts, 1, 14))
+
diff --git a/tests/baselines/reference/typeAliasDeclarationEmit2.types b/tests/baselines/reference/typeAliasDeclarationEmit2.types
new file mode 100644
index 00000000000..bc8bd30935e
--- /dev/null
+++ b/tests/baselines/reference/typeAliasDeclarationEmit2.types
@@ -0,0 +1,8 @@
+=== tests/cases/compiler/typeAliasDeclarationEmit2.ts ===
+
+export type A = { value: a };
+>A : { value: a; }
+>a : a
+>value : a
+>a : a
+
diff --git a/tests/cases/compiler/typeAliasDeclarationEmit2.ts b/tests/cases/compiler/typeAliasDeclarationEmit2.ts
new file mode 100644
index 00000000000..33aecd7d5c9
--- /dev/null
+++ b/tests/cases/compiler/typeAliasDeclarationEmit2.ts
@@ -0,0 +1,5 @@
+// @target: ES5
+// @module: AMD
+// @declaration: true
+
+export type A = { value: a };
\ No newline at end of file