diff --git a/packages/babel-plugin-transform-typescript/src/index.ts b/packages/babel-plugin-transform-typescript/src/index.ts index 9ffd38dd926a..6e120675f064 100644 --- a/packages/babel-plugin-transform-typescript/src/index.ts +++ b/packages/babel-plugin-transform-typescript/src/index.ts @@ -124,7 +124,11 @@ export default declare((api, opts: Options) => { if (!process.env.BABEL_8_BREAKING) { // keep the definitely assigned fields only when `allowDeclareFields` (equivalent of // Typescript's `useDefineForClassFields`) is true - if (!allowDeclareFields && !node.decorators) { + if ( + !allowDeclareFields && + !node.decorators && + !t.isClassPrivateProperty(node) + ) { path.remove(); } } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-babel-7/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-babel-7/input.ts index 9716f73fa6a5..4aa546ac422d 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-babel-7/input.ts +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-babel-7/input.ts @@ -1,3 +1,5 @@ class A { x!; + + #y!; } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-babel-7/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-babel-7/output.js index eebf5c5c33db..60badd3faf37 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-babel-7/output.js +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-babel-7/output.js @@ -1,3 +1,4 @@ class A { x; + #y; } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-with-declare-disabled-babel-7/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-with-declare-disabled-babel-7/input.ts index 9716f73fa6a5..4aa546ac422d 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-with-declare-disabled-babel-7/input.ts +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-with-declare-disabled-babel-7/input.ts @@ -1,3 +1,5 @@ class A { x!; + + #y!; } diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-with-declare-disabled-babel-7/output.js b/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-with-declare-disabled-babel-7/output.js index a869c2849526..e2acdc9c7dee 100644 --- a/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-with-declare-disabled-babel-7/output.js +++ b/packages/babel-plugin-transform-typescript/test/fixtures/class/uninitialized-definite-with-declare-disabled-babel-7/output.js @@ -1 +1,3 @@ -class A {} +class A { + #y; +}