Revert "fix(compiler-core): correctly handle ts type assertions in expression…" (#14062)

This reverts commit e6544ac292.
Close #14060
This commit is contained in:
edison 2025-11-07 08:52:07 +08:00 committed by GitHub
parent 5cf0097f33
commit 11ec51aa5a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 4 additions and 26 deletions

View File

@ -14,16 +14,6 @@ return function render(_ctx, _cache, $props, $setup, $data, $options) {
}"
`;
exports[`compiler: expression transform > expression with type 1`] = `
"const { openBlock: _openBlock, createElementBlock: _createElementBlock } = Vue
return function render(_ctx, _cache) {
return (_openBlock(), _createElementBlock("div", {
onClick: _ctx.handleClick
}, null, 8 /* PROPS */, ["onClick"]))
}"
`;
exports[`compiler: expression transform > should allow leak of var declarations in for loop 1`] = `
"const { openBlock: _openBlock, createElementBlock: _createElementBlock } = Vue

View File

@ -754,12 +754,4 @@ describe('compiler: expression transform', () => {
expect(code).toMatch(`_ctx.bar`)
})
})
test('expression with type', () => {
const { code } = compile(
`<div @click="(<number>handleClick as any)"></div>`,
)
expect(code).toMatch(`onClick: _ctx.handleClick`)
expect(code).toMatchSnapshot()
})
})

View File

@ -18,7 +18,6 @@ import {
createSimpleExpression,
} from '../ast'
import {
TS_NODE_TYPES,
isInDestructureAssignment,
isInNewExpression,
isStaticProperty,
@ -348,18 +347,15 @@ export function processExpression(
// an ExpressionNode has the `.children` property, it will be used instead of
// `.content`.
const children: CompoundExpressionNode['children'] = []
const isTSNode = TS_NODE_TYPES.includes(ast.type)
ids.sort((a, b) => a.start - b.start)
ids.forEach((id, i) => {
// range is offset by -1 due to the wrapping parens when parsed
const start = id.start - 1
const end = id.end - 1
const last = ids[i - 1]
if (!(isTSNode && i === 0)) {
const leadingText = rawExp.slice(last ? last.end - 1 : 0, start)
if (leadingText.length || id.prefix) {
children.push(leadingText + (id.prefix || ``))
}
const leadingText = rawExp.slice(last ? last.end - 1 : 0, start)
if (leadingText.length || id.prefix) {
children.push(leadingText + (id.prefix || ``))
}
const source = rawExp.slice(start, end)
children.push(
@ -376,7 +372,7 @@ export function processExpression(
: ConstantTypes.NOT_CONSTANT,
),
)
if (i === ids.length - 1 && end < rawExp.length && !isTSNode) {
if (i === ids.length - 1 && end < rawExp.length) {
children.push(rawExp.slice(end))
}
})