Skip to content

Commit

Permalink
Revert "fix(compiler-sfc): infer correct type for enums"
Browse files Browse the repository at this point in the history
This reverts commit 2e074a7.
  • Loading branch information
yyx990803 committed Mar 28, 2023
1 parent 2e074a7 commit 6f5698c
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1677,8 +1677,6 @@ interface Test {}

type Alias = number[]

enum Enum { one = '1', two = '2' }


export default /*#__PURE__*/_defineComponent({
props: {
Expand All @@ -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 },
Expand All @@ -1722,7 +1719,7 @@ export default /*#__PURE__*/_defineComponent({



return { Enum }
return { }
}

})"
Expand Down
8 changes: 1 addition & 7 deletions packages/compiler-sfc/__tests__/compileScript.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -998,8 +998,6 @@ const emit = defineEmits(['a', 'b'])
type Alias = number[]
enum Enum { one = '1', two = '2' }
defineProps<{
string: string
number: number
Expand All @@ -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<string | null>
Expand Down Expand Up @@ -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 }`)
Expand Down Expand Up @@ -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
})
})

Expand Down
18 changes: 7 additions & 11 deletions packages/compiler-sfc/src/compileScript.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}
}
Expand Down Expand Up @@ -1958,10 +1957,7 @@ interface PropTypeData {
}

function recordType(node: Node, declaredTypes: Record<string, string[]>) {
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(
Expand Down

0 comments on commit 6f5698c

Please sign in to comment.