diff --git a/packages/compiler-sfc/src/compileScript.ts b/packages/compiler-sfc/src/compileScript.ts index b7e4c0ea778..a8a5de89baa 100644 --- a/packages/compiler-sfc/src/compileScript.ts +++ b/packages/compiler-sfc/src/compileScript.ts @@ -1964,11 +1964,26 @@ function inferRuntimeType( case 'Readonly': case 'Pick': case 'Omit': - case 'Exclude': - case 'Extract': case 'Required': case 'InstanceType': return ['Object'] + + case 'Extract': + if (node.typeParameters && node.typeParameters.params[1]) { + return inferRuntimeType( + node.typeParameters.params[1], + declaredTypes + ) + } + return ['null'] + case 'Exclude': + if (node.typeParameters && node.typeParameters.params[0]) { + return inferRuntimeType( + node.typeParameters.params[0], + declaredTypes + ) + } + return ['null'] } } return [`null`]