From 9b716518ed7ff04d4706ab44877b7d4b1ed579b5 Mon Sep 17 00:00:00 2001 From: Kevin Lau Date: Thu, 23 Apr 2020 02:27:19 -0700 Subject: [PATCH] Throw error on TypeScript `declare const enum` (#11410) Throw error on `const enum` even if it has `declare`. Resolves: #10785 --- packages/babel-plugin-transform-typescript/src/enum.js | 8 ++++---- .../test/fixtures/declarations/const-enum/input.ts | 1 + .../test/fixtures/declarations/const-enum/options.json | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 packages/babel-plugin-transform-typescript/test/fixtures/declarations/const-enum/input.ts create mode 100644 packages/babel-plugin-transform-typescript/test/fixtures/declarations/const-enum/options.json diff --git a/packages/babel-plugin-transform-typescript/src/enum.js b/packages/babel-plugin-transform-typescript/src/enum.js index 3b604e2e8f..808f2fcf49 100644 --- a/packages/babel-plugin-transform-typescript/src/enum.js +++ b/packages/babel-plugin-transform-typescript/src/enum.js @@ -3,15 +3,15 @@ import { template } from "@babel/core"; export default function transpileEnum(path, t) { const { node } = path; + if (node.const) { + throw path.buildCodeFrameError("'const' enums are not supported."); + } + if (node.declare) { path.remove(); return; } - if (node.const) { - throw path.buildCodeFrameError("'const' enums are not supported."); - } - const name = node.id.name; const fill = enumFill(path, t, node.id); diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/declarations/const-enum/input.ts b/packages/babel-plugin-transform-typescript/test/fixtures/declarations/const-enum/input.ts new file mode 100644 index 0000000000..4a3fc75be0 --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/declarations/const-enum/input.ts @@ -0,0 +1 @@ +declare const enum E {} diff --git a/packages/babel-plugin-transform-typescript/test/fixtures/declarations/const-enum/options.json b/packages/babel-plugin-transform-typescript/test/fixtures/declarations/const-enum/options.json new file mode 100644 index 0000000000..26f55acbbd --- /dev/null +++ b/packages/babel-plugin-transform-typescript/test/fixtures/declarations/const-enum/options.json @@ -0,0 +1 @@ +{ "throws": "'const' enums are not supported." }