chore: improve event value validation message

This commit is contained in:
Evan You 2024-04-15 23:39:59 +08:00
parent 9da34d7af8
commit f26d56601c
No known key found for this signature in database
GPG Key ID: B9D421896CA450FB
2 changed files with 5 additions and 7 deletions

View File

@ -198,9 +198,8 @@ describe(`runtime-dom: events patching`, () => {
patchProp(el, 'onClick', null, 'test')
el.dispatchEvent(new Event('click'))
expect(
'[Vue warn]: Wrong type passed to the event invoker, ' +
'did you maybe forget @ or : in front of your prop?' +
'\nReceived onClick="test"',
`Wrong type passed as event handler to onClick - did you forget @ or : ` +
`in front of your prop?\nExpected function or array of functions, received type string.`,
).toHaveBeenWarned()
})
})

View File

@ -1,4 +1,4 @@
import { NOOP, hyphenate, isArray, isFunction, isString } from '@vue/shared'
import { NOOP, hyphenate, isArray, isFunction } from '@vue/shared'
import {
type ComponentInternalInstance,
ErrorCodes,
@ -129,9 +129,8 @@ function sanitizeEventValue(value: unknown, propName: string): EventValue {
return value as EventValue
}
warn(
`Wrong type passed to the event invoker, did you maybe forget @ or : ` +
`in front of your prop?\nReceived ` +
`${propName}=${isString(value) ? JSON.stringify(value) : `[${typeof value}]`}`,
`Wrong type passed as event handler to ${propName} - did you forget @ or : ` +
`in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`,
)
return NOOP
}