feat(types): expose ComponentCustomOptions for declaring custom options
This commit is contained in:
parent
be21cfb1db
commit
c0adb67c2e
@ -51,6 +51,24 @@ import { Directive } from './directives'
|
||||
import { ComponentPublicInstance } from './componentProxy'
|
||||
import { warn } from './warning'
|
||||
|
||||
/**
|
||||
* Interface for declaring custom options.
|
||||
*
|
||||
* @example
|
||||
* ```ts
|
||||
* declare module '@vue/runtime-core' {
|
||||
* interface ComponentCustomOptions {
|
||||
* beforeRouteUpdate?(
|
||||
* to: Route,
|
||||
* from: Route,
|
||||
* next: () => void
|
||||
* ): void
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
export interface ComponentCustomOptions {}
|
||||
|
||||
export interface ComponentOptionsBase<
|
||||
Props,
|
||||
RawBindings,
|
||||
@ -59,7 +77,10 @@ export interface ComponentOptionsBase<
|
||||
M extends MethodOptions,
|
||||
E extends EmitsOptions,
|
||||
EE extends string = string
|
||||
> extends LegacyOptions<Props, D, C, M>, SFCInternalOptions {
|
||||
>
|
||||
extends LegacyOptions<Props, D, C, M>,
|
||||
SFCInternalOptions,
|
||||
ComponentCustomOptions {
|
||||
setup?: (
|
||||
this: void,
|
||||
props: Props,
|
||||
|
@ -189,8 +189,9 @@ export {
|
||||
export {
|
||||
ComponentOptions,
|
||||
ComponentOptionsWithoutProps,
|
||||
ComponentOptionsWithObjectProps as ComponentOptionsWithProps,
|
||||
ComponentOptionsWithArrayProps
|
||||
ComponentOptionsWithObjectProps,
|
||||
ComponentOptionsWithArrayProps,
|
||||
ComponentCustomOptions
|
||||
} from './componentOptions'
|
||||
export {
|
||||
ComponentPublicInstance,
|
||||
|
@ -1,7 +1,11 @@
|
||||
import { expectError } from 'tsd'
|
||||
import { expectError, expectType } from 'tsd'
|
||||
import { defineComponent } from './index'
|
||||
|
||||
declare module '@vue/runtime-core' {
|
||||
interface ComponentCustomOptions {
|
||||
test?(n: number): void
|
||||
}
|
||||
|
||||
interface ComponentCustomProperties {
|
||||
state: 'stopped' | 'running'
|
||||
}
|
||||
@ -9,6 +13,11 @@ declare module '@vue/runtime-core' {
|
||||
|
||||
export const Custom = defineComponent({
|
||||
data: () => ({ counter: 0 }),
|
||||
|
||||
test(n) {
|
||||
expectType<number>(n)
|
||||
},
|
||||
|
||||
methods: {
|
||||
aMethod() {
|
||||
expectError(this.notExisting)
|
Loading…
Reference in New Issue
Block a user