From d63c680f3c78c15ad147461e015d4a2b39012ad9 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Tue, 11 Feb 2020 12:03:30 -0500 Subject: [PATCH 1/2] test: update fixture with decorated definite class property --- .../test/fixtures/class/properties/input.ts | 1 + .../test/fixtures/class/properties/output.js | 2 ++ 2 files changed, 3 insertions(+) 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; } From 5e7a0d7478799729d0de2b5b0731b3c3ee288518 Mon Sep 17 00:00:00 2001 From: "James C. Davis" Date: Tue, 11 Feb 2020 12:04:16 -0500 Subject: [PATCH 2/2] fix: don't remove decorated definite class properties --- packages/babel-plugin-transform-typescript/src/index.js | 5 ++++- 1 file changed, 4 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;