diff --git a/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap b/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap index d0559423e7e..b7a13e56851 100644 --- a/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/__snapshots__/compileScript.spec.ts.snap @@ -1677,8 +1677,6 @@ interface Test {} type Alias = number[] - enum Enum { one = '1', two = '2' } - export default /*#__PURE__*/_defineComponent({ props: { @@ -1704,7 +1702,6 @@ export default /*#__PURE__*/_defineComponent({ symbol: { type: Symbol, required: true }, extract: { type: Number, required: true }, exclude: { type: [Number, Boolean], required: true }, - enum: { type: Object, required: true }, uppercase: { type: String, required: true }, params: { type: Array, required: true }, nonNull: { type: String, required: true }, @@ -1722,7 +1719,7 @@ export default /*#__PURE__*/_defineComponent({ -return { Enum } +return { } } })" diff --git a/packages/compiler-sfc/__tests__/compileScript.spec.ts b/packages/compiler-sfc/__tests__/compileScript.spec.ts index 0c53a155a5a..8f96ecc11c5 100644 --- a/packages/compiler-sfc/__tests__/compileScript.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript.spec.ts @@ -998,8 +998,6 @@ const emit = defineEmits(['a', 'b']) type Alias = number[] - enum Enum { one = '1', two = '2' } - defineProps<{ string: string number: number @@ -1023,7 +1021,6 @@ const emit = defineEmits(['a', 'b']) symbol: symbol extract: Extract<1 | 2 | boolean, 2> exclude: Exclude<1 | 2 | boolean, 2> - enum: Enum uppercase: Uppercase<'foo'> params: Parameters<(foo: any) => void> nonNull: NonNullable @@ -1069,7 +1066,6 @@ const emit = defineEmits(['a', 'b']) expect(content).toMatch( `exclude: { type: [Number, Boolean], required: true }` ) - expect(content).toMatch(`enum: { type: Object, required: true }`) expect(content).toMatch(`uppercase: { type: String, required: true }`) expect(content).toMatch(`params: { type: Array, required: true }`) expect(content).toMatch(`nonNull: { type: String, required: true }`) @@ -1119,9 +1115,7 @@ const emit = defineEmits(['a', 'b']) foo: BindingTypes.PROPS, uppercase: BindingTypes.PROPS, params: BindingTypes.PROPS, - nonNull: BindingTypes.PROPS, - enum: BindingTypes.PROPS, - Enum: BindingTypes.LITERAL_CONST + nonNull: BindingTypes.PROPS }) }) diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index dff71e642f2..e2e129924e3 100644 --- a/packages/compiler-sfc/src/compileScript.ts +++ b/packages/compiler-sfc/src/compileScript.ts @@ -1369,15 +1369,14 @@ export function compileScript( if (isTS) { // move all Type declarations to outer scope if ( - node.type.startsWith('TS') || - (node.type === 'ExportNamedDeclaration' && - node.exportKind === 'type') || - (node.type === 'VariableDeclaration' && node.declare) + (node.type.startsWith('TS') || + (node.type === 'ExportNamedDeclaration' && + node.exportKind === 'type') || + (node.type === 'VariableDeclaration' && node.declare)) && + node.type !== 'TSEnumDeclaration' ) { recordType(node, declaredTypes) - if (node.type !== 'TSEnumDeclaration') { - hoistNode(node) - } + hoistNode(node) } } } @@ -1958,10 +1957,7 @@ interface PropTypeData { } function recordType(node: Node, declaredTypes: Record) { - if ( - node.type === 'TSInterfaceDeclaration' || - node.type === 'TSEnumDeclaration' - ) { + if (node.type === 'TSInterfaceDeclaration') { declaredTypes[node.id.name] = [`Object`] } else if (node.type === 'TSTypeAliasDeclaration') { declaredTypes[node.id.name] = inferRuntimeType(