types(runtime-core): make this void in emits validator (#1842)

This commit is contained in:
Aurelius333 2020-08-14 17:36:26 -04:00 committed by GitHub
parent 223f180529
commit 5002ab53d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 1 deletions

View File

@ -106,7 +106,7 @@ export interface ComponentOptionsBase<
components?: Record<string, PublicAPIComponent>
directives?: Record<string, Directive>
inheritAttrs?: boolean
emits?: E | EE[]
emits?: (E | EE[]) & ThisType<void>
// Internal ------------------------------------------------------------------

View File

@ -710,6 +710,17 @@ describe('emits', () => {
const instance = {} as ComponentPublicInstance
instance.$emit('test', 1)
instance.$emit('test')
// `this` should be void inside of emits validators
defineComponent({
props: ['bar'],
emits: {
foo(): boolean {
// @ts-expect-error
return this.bar === 3
}
}
})
})
describe('componentOptions setup should be `SetupContext`', () => {