diff --git a/src/compiler/transformers/utilities.ts b/src/compiler/transformers/utilities.ts index e2029ff7b60..3cd246c9094 100644 --- a/src/compiler/transformers/utilities.ts +++ b/src/compiler/transformers/utilities.ts @@ -314,7 +314,7 @@ namespace ts { */ function isInitializedOrStaticProperty(member: ClassElement, requireInitializer: boolean, isStatic: boolean) { return isPropertyDeclaration(member) - && (!!member.initializer || !requireInitializer) + && (!!member.initializer || !requireInitializer && !(getOriginalNode(member).flags & NodeFlags.Ambient)) && hasStaticModifier(member) === isStatic; } diff --git a/tests/baselines/reference/definePropertyES5.js b/tests/baselines/reference/definePropertyES5.js index a0bc4a64db4..b61e8c11465 100644 --- a/tests/baselines/reference/definePropertyES5.js +++ b/tests/baselines/reference/definePropertyES5.js @@ -6,6 +6,7 @@ class A { ["computed"] = 13 ;[x] = 14 m() { } + declare notEmitted: boolean; } diff --git a/tests/baselines/reference/definePropertyES5.symbols b/tests/baselines/reference/definePropertyES5.symbols index f9afa028687..48ec310926f 100644 --- a/tests/baselines/reference/definePropertyES5.symbols +++ b/tests/baselines/reference/definePropertyES5.symbols @@ -21,5 +21,8 @@ class A { m() { } >m : Symbol(A.m, Decl(definePropertyES5.ts, 5, 13)) + + declare notEmitted: boolean; +>notEmitted : Symbol(A.notEmitted, Decl(definePropertyES5.ts, 6, 11)) } diff --git a/tests/baselines/reference/definePropertyES5.types b/tests/baselines/reference/definePropertyES5.types index 3f82787c13a..7fffb77b74c 100644 --- a/tests/baselines/reference/definePropertyES5.types +++ b/tests/baselines/reference/definePropertyES5.types @@ -25,5 +25,8 @@ class A { m() { } >m : () => void + + declare notEmitted: boolean; +>notEmitted : boolean } diff --git a/tests/cases/conformance/classes/propertyMemberDeclarations/definePropertyES5.ts b/tests/cases/conformance/classes/propertyMemberDeclarations/definePropertyES5.ts index 73e1ee515d1..a2338889134 100644 --- a/tests/cases/conformance/classes/propertyMemberDeclarations/definePropertyES5.ts +++ b/tests/cases/conformance/classes/propertyMemberDeclarations/definePropertyES5.ts @@ -7,4 +7,5 @@ class A { ["computed"] = 13 ;[x] = 14 m() { } + declare notEmitted: boolean; }