diff --git a/src/index.ts b/src/index.ts index 9580a7f..39c9f10 100644 --- a/src/index.ts +++ b/src/index.ts @@ -4,7 +4,10 @@ import { format, Options as PrettierOptions } from 'prettier'; // @ts-expect-error We're only importing so we can create a config item, so we don't care about types import bts from '@babel/plugin-transform-typescript'; -const babelTsTransform = createConfigItem([bts, { onlyRemoveTypeImports: true }]); +const babelTsTransform = createConfigItem([ + bts, + { allowDeclareFields: true, onlyRemoveTypeImports: true }, +]); // @ts-expect-error We're only importing so we can create a config item, so we don't care about types import bsd from '@babel/plugin-syntax-decorators'; diff --git a/test/index.test.ts b/test/index.test.ts index 58e9380..312093a 100644 --- a/test/index.test.ts +++ b/test/index.test.ts @@ -139,4 +139,32 @@ export default class Baz {} `; expect(await removeTypes(contents)).toEqual(expected); }); + + it('removes declared properties', async () => { + const contents = `export default class Baz { + declare foo: string; +} +`; + + const expected = `export default class Baz {} +`; + + expect(await removeTypes(contents)).toEqual(expected); + }); + + it('keeps declared properties with decorators', async () => { + const contents = `export default class Baz { + @service + declare foo: string; +} +`; + + const expected = `export default class Baz { + @service + foo; +} +`; + + expect(await removeTypes(contents)).toEqual(expected); + }); });