From: daiwei Date: Thu, 21 Aug 2025 01:34:15 +0000 (+0800) Subject: chore: tweaks X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F12876%2Fhead;p=thirdparty%2Fvuejs%2Fcore.git chore: tweaks --- diff --git a/packages/compiler-sfc/src/script/resolveType.ts b/packages/compiler-sfc/src/script/resolveType.ts index 494eb68c02..d8f4307005 100644 --- a/packages/compiler-sfc/src/script/resolveType.ts +++ b/packages/compiler-sfc/src/script/resolveType.ts @@ -1589,38 +1589,32 @@ export function inferRuntimeType( case 'TSTypeReference': { const resolved = resolveTypeReference(ctx, node, scope) if (resolved) { - // #13240 - // Special case for function type aliases to ensure correct runtime behavior - // other type aliases still fallback to unknown as before - if ( - resolved.type === 'TSTypeAliasDeclaration' && - resolved.typeAnnotation.type === 'TSFunctionType' - ) { - return ['Function'] - } + if (resolved.type === 'TSTypeAliasDeclaration') { + // #13240 + // Special case for function type aliases to ensure correct runtime behavior + // other type aliases still fallback to unknown as before + if (resolved.typeAnnotation.type === 'TSFunctionType') { + return ['Function'] + } - if (!node.typeParameters) { - return inferRuntimeType( - ctx, - resolved, - resolved._ownerScope, - isKeyOf, - ) - } else if (resolved.type === 'TSTypeAliasDeclaration') { - const typeParams: Record = Object.create(null) - if (resolved.typeParameters) { - resolved.typeParameters.params.forEach((p, i) => { - typeParams![p.name] = node.typeParameters!.params[i] - }) + if (node.typeParameters) { + const typeParams: Record = Object.create(null) + if (resolved.typeParameters) { + resolved.typeParameters.params.forEach((p, i) => { + typeParams![p.name] = node.typeParameters!.params[i] + }) + } + return inferRuntimeType( + ctx, + resolved.typeAnnotation, + resolved._ownerScope, + isKeyOf, + typeParams, + ) } - return inferRuntimeType( - ctx, - resolved.typeAnnotation, - resolved._ownerScope, - isKeyOf, - typeParams, - ) } + + return inferRuntimeType(ctx, resolved, resolved._ownerScope, isKeyOf) } if (node.typeName.type === 'Identifier') { if (typeParameters && typeParameters[node.typeName.name]) {