From 5f5c5b049ba9e3f5871c91a3f6d170e39591583f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E6=99=BA=E5=AD=90?= Date: Wed, 14 Dec 2022 00:47:16 +0800 Subject: [PATCH] fix(compiler-sfc): infer TS Extract&Exclude runtime type closes #7337 --- packages/compiler-sfc/src/compileScript.ts | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) 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`]