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']