| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- import {
- DebuggerEvent,
- ShallowUnwrapRef,
- UnwrapNestedRefs
- } from './v3-generated'
- import { UnionToIntersection } from './common'
- import { Vue, VueConstructor } from './vue'
- import {
- ComputedOptions,
- MethodOptions,
- ExtractComputedReturns,
- ComponentOptionsMixin,
- ComponentOptionsBase
- } from './v3-component-options'
- import { EmitFn, EmitsOptions } from './v3-setup-context'
- /**
- * Custom properties added to component instances in any way and can be accessed through `this`
- *
- * @example
- * ```ts
- * import { Router } from 'vue-router'
- *
- * declare module 'vue' {
- * interface ComponentCustomProperties {
- * $router: Router
- * }
- * }
- * ```
- */
- export interface ComponentCustomProperties {}
- export type ComponentInstance = InstanceType<VueConstructor>
- export type OptionTypesKeys = 'P' | 'B' | 'D' | 'C' | 'M' | 'Defaults'
- export type OptionTypesType<
- P = {},
- B = {},
- D = {},
- C extends ComputedOptions = {},
- M extends MethodOptions = {},
- Defaults = {}
- > = {
- P: P
- B: B
- D: D
- C: C
- M: M
- Defaults: Defaults
- }
- type IsDefaultMixinComponent<T> = T extends ComponentOptionsMixin
- ? ComponentOptionsMixin extends T
- ? true
- : false
- : false
- type MixinToOptionTypes<T> = T extends ComponentOptionsBase<
- infer P,
- infer B,
- infer D,
- infer C,
- infer M,
- infer Mixin,
- infer Extends,
- any,
- any,
- infer Defaults
- >
- ? OptionTypesType<P & {}, B & {}, D & {}, C & {}, M & {}, Defaults & {}> &
- IntersectionMixin<Mixin> &
- IntersectionMixin<Extends>
- : never
- // ExtractMixin(map type) is used to resolve circularly references
- type ExtractMixin<T> = {
- Mixin: MixinToOptionTypes<T>
- }[T extends ComponentOptionsMixin ? 'Mixin' : never]
- export type IntersectionMixin<T> = IsDefaultMixinComponent<T> extends true
- ? OptionTypesType<{}, {}, {}, {}, {}, {}>
- : UnionToIntersection<ExtractMixin<T>>
- export type UnwrapMixinsType<
- T,
- Type extends OptionTypesKeys
- > = T extends OptionTypesType ? T[Type] : never
- type EnsureNonVoid<T> = T extends void ? {} : T
- export type CreateComponentPublicInstance<
- P = {},
- B = {},
- D = {},
- C extends ComputedOptions = {},
- M extends MethodOptions = {},
- Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,
- Extends extends ComponentOptionsMixin = ComponentOptionsMixin,
- E extends EmitsOptions = {},
- PublicProps = P,
- Defaults = {},
- MakeDefaultsOptional extends boolean = false,
- PublicMixin = IntersectionMixin<Mixin> & IntersectionMixin<Extends>,
- PublicP = UnwrapMixinsType<PublicMixin, 'P'> & EnsureNonVoid<P>,
- PublicB = UnwrapMixinsType<PublicMixin, 'B'> & EnsureNonVoid<B>,
- PublicD = UnwrapMixinsType<PublicMixin, 'D'> & EnsureNonVoid<D>,
- PublicC extends ComputedOptions = UnwrapMixinsType<PublicMixin, 'C'> &
- EnsureNonVoid<C>,
- PublicM extends MethodOptions = UnwrapMixinsType<PublicMixin, 'M'> &
- EnsureNonVoid<M>,
- PublicDefaults = UnwrapMixinsType<PublicMixin, 'Defaults'> &
- EnsureNonVoid<Defaults>
- > = ComponentPublicInstance<
- PublicP,
- PublicB,
- PublicD,
- PublicC,
- PublicM,
- E,
- PublicProps,
- PublicDefaults,
- MakeDefaultsOptional
- >
- // public properties exposed on the proxy, which is used as the render context
- // in templates (as `this` in the render option)
- export type ComponentPublicInstance<
- P = {}, // props type extracted from props option
- B = {}, // raw bindings returned from setup()
- D = {}, // return from data()
- C extends ComputedOptions = {},
- M extends MethodOptions = {},
- E extends EmitsOptions = {},
- PublicProps = P,
- Defaults = {},
- MakeDefaultsOptional extends boolean = false,
- Options = ComponentOptionsBase<
- any,
- any,
- any,
- any,
- any,
- any,
- any,
- any,
- any,
- any
- >
- > = Vue3Instance<
- D,
- P,
- PublicProps,
- E,
- Defaults,
- MakeDefaultsOptional,
- Options
- > &
- Readonly<P> &
- ShallowUnwrapRef<B> &
- UnwrapNestedRefs<D> &
- ExtractComputedReturns<C> &
- M &
- ComponentCustomProperties
- interface Vue3Instance<
- D,
- P,
- PublicProps,
- E,
- Defaults,
- MakeDefaultsOptional,
- Options
- > extends Vue<
- D,
- Readonly<
- MakeDefaultsOptional extends true
- ? Partial<Defaults> & Omit<P & PublicProps, keyof Defaults>
- : P & PublicProps
- >,
- ComponentPublicInstance,
- Options & MergedComponentOptionsOverride,
- EmitFn<E>
- > {}
- type MergedHook<T = () => void> = T | T[]
- export type MergedComponentOptionsOverride = {
- beforeCreate?: MergedHook
- created?: MergedHook
- beforeMount?: MergedHook
- mounted?: MergedHook
- beforeUpdate?: MergedHook
- updated?: MergedHook
- activated?: MergedHook
- deactivated?: MergedHook
- /** @deprecated use `beforeUnmount` instead */
- beforeDestroy?: MergedHook
- beforeUnmount?: MergedHook
- /** @deprecated use `unmounted` instead */
- destroyed?: MergedHook
- unmounted?: MergedHook
- renderTracked?: MergedHook<DebuggerHook>
- renderTriggered?: MergedHook<DebuggerHook>
- errorCaptured?: MergedHook<ErrorCapturedHook>
- }
- export type DebuggerHook = (e: DebuggerEvent) => void
- export type ErrorCapturedHook<TError = unknown> = (
- err: TError,
- instance: ComponentPublicInstance | null,
- info: string
- ) => boolean | void
- export type ComponentPublicInstanceConstructor<
- T extends ComponentPublicInstance<
- Props,
- RawBindings,
- D,
- C,
- M
- > = ComponentPublicInstance<any, any, any>,
- Props = any,
- RawBindings = any,
- D = any,
- C extends ComputedOptions = ComputedOptions,
- M extends MethodOptions = MethodOptions
- > = {
- new (...args: any[]): T
- }
|