From 1a04fba10b6462303c65f1095da86ce05c14f1f4 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 29 Mar 2023 21:01:52 +0800 Subject: [PATCH] fix(compiler-sfc): infer object type for empty type literal --- packages/compiler-sfc/src/compileScript.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index 279a41d08..af54641f4 100644 --- a/packages/compiler-sfc/src/compileScript.ts +++ b/packages/compiler-sfc/src/compileScript.ts @@ -2040,16 +2040,16 @@ function inferRuntimeType( // TODO (nice to have) generate runtime property validation const types = new Set() for (const m of node.members) { - switch (m.type) { - case 'TSCallSignatureDeclaration': - case 'TSConstructSignatureDeclaration': - types.add('Function') - break - default: - types.add('Object') + if ( + m.type === 'TSCallSignatureDeclaration' || + m.type === 'TSConstructSignatureDeclaration' + ) { + types.add('Function') + } else { + types.add('Object') } } - return Array.from(types) + return types.size ? Array.from(types) : ['Object'] } case 'TSFunctionType': return ['Function']