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; }