From a5f63299ebdcf0523023d1dd1307979ff25c3979 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Thu, 27 Feb 2020 15:31:23 -0500 Subject: [PATCH] TypeScript: Preserve decorated definite class properties (#11129) * test: update fixture with decorated definite class property * fix: don't remove decorated definite class properties --- packages/babel-plugin-transform-typescript/src/index.js | 5 ++++- .../test/fixtures/class/properties/input.ts | 1 + .../test/fixtures/class/properties/output.js | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/babel-plugin-transform-typescript/src/index.js b/packages/babel-plugin-transform-typescript/src/index.js index 97b23b454503..906800fec056 100644 --- a/packages/babel-plugin-transform-typescript/src/index.js +++ b/packages/babel-plugin-transform-typescript/src/index.js @@ -74,7 +74,9 @@ export default declare( ); } - path.remove(); + if (!node.decorators) { + path.remove(); + } } else if (!allowDeclareFields && !node.value && !node.decorators) { path.remove(); } @@ -84,6 +86,7 @@ export default declare( if (node.readonly) node.readonly = null; if (node.optional) node.optional = null; if (node.typeAnnotation) node.typeAnnotation = null; + if (node.definite) node.definite = null; }, method({ node }) { if (node.accessibility) node.accessibility = null; diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/input.ts index b59f26e0c387..2aad5f4a3474 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/input.ts +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/input.ts @@ -5,4 +5,5 @@ class C { @foo d: number; @foo e: number = 3; f!: number; + @foo g!: number; } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/output.js index 8dd079732dbc..429cf6d41341 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/output.js +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/properties/output.js @@ -5,4 +5,6 @@ class C { d; @foo e = 3; + @foo + g; }