| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- import { Vue } from './vue'
- import { VNode } from './vnode'
- import { ComponentOptions as Vue2ComponentOptions } from './options'
- import { EmitsOptions, SetupContext } from './v3-setup-context'
- import { Data } from './common'
- import { ComponentPropsOptions, ExtractPropTypes } from './v3-component-props'
- import { ComponentRenderProxy } from './v3-component-proxy'
- export { ComponentPropsOptions } from './v3-component-props'
- export type ComputedGetter<T> = (ctx?: any) => T
- export type ComputedSetter<T> = (v: T) => void
- export interface WritableComputedOptions<T> {
- get: ComputedGetter<T>
- set: ComputedSetter<T>
- }
- export type ComputedOptions = Record<
- string,
- ComputedGetter<any> | WritableComputedOptions<any>
- >
- export interface MethodOptions {
- [key: string]: Function
- }
- export type SetupFunction<
- Props,
- RawBindings = {},
- Emits extends EmitsOptions = {}
- > = (
- this: void,
- props: Readonly<Props>,
- ctx: SetupContext<Emits>
- ) => RawBindings | (() => VNode | null) | void
- interface ComponentOptionsBase<
- Props,
- D = Data,
- C extends ComputedOptions = {},
- M extends MethodOptions = {}
- > extends Omit<
- Vue2ComponentOptions<Vue, D, M, C, Props>,
- 'data' | 'computed' | 'method' | 'setup' | 'props'
- > {
- // allow any custom options
- [key: string]: any
- // rewrite options api types
- data?: (this: Props & Vue, vm: Props) => D
- computed?: C
- methods?: M
- }
- export type ExtractComputedReturns<T extends any> = {
- [key in keyof T]: T[key] extends { get: (...args: any[]) => infer TReturn }
- ? TReturn
- : T[key] extends (...args: any[]) => infer TReturn
- ? TReturn
- : never
- }
- export type ComponentOptionsWithProps<
- PropsOptions = ComponentPropsOptions,
- RawBindings = Data,
- D = Data,
- C extends ComputedOptions = {},
- M extends MethodOptions = {},
- Mixin = {},
- Extends = {},
- Emits extends EmitsOptions = {},
- EmitsNames extends string = string,
- Props = ExtractPropTypes<PropsOptions>
- > = ComponentOptionsBase<Props, D, C, M> & {
- props?: PropsOptions
- emits?: (Emits | EmitsNames[]) & ThisType<void>
- setup?: SetupFunction<Props, RawBindings, Emits>
- } & ThisType<
- ComponentRenderProxy<Props, RawBindings, D, C, M, Mixin, Extends, Emits>
- >
- export type ComponentOptionsWithArrayProps<
- PropNames extends string = string,
- RawBindings = Data,
- D = Data,
- C extends ComputedOptions = {},
- M extends MethodOptions = {},
- Mixin = {},
- Extends = {},
- Emits extends EmitsOptions = {},
- EmitsNames extends string = string,
- Props = Readonly<{ [key in PropNames]?: any }>
- > = ComponentOptionsBase<Props, D, C, M> & {
- props?: PropNames[]
- emits?: (Emits | EmitsNames[]) & ThisType<void>
- setup?: SetupFunction<Props, RawBindings, Emits>
- } & ThisType<
- ComponentRenderProxy<Props, RawBindings, D, C, M, Mixin, Extends, Emits>
- >
- export type ComponentOptionsWithoutProps<
- Props = {},
- RawBindings = Data,
- D = Data,
- C extends ComputedOptions = {},
- M extends MethodOptions = {},
- Mixin = {},
- Extends = {},
- Emits extends EmitsOptions = {},
- EmitsNames extends string = string
- > = ComponentOptionsBase<Props, D, C, M> & {
- props?: undefined
- emits?: (Emits | EmitsNames[]) & ThisType<void>
- setup?: SetupFunction<Props, RawBindings, Emits>
- } & ThisType<
- ComponentRenderProxy<Props, RawBindings, D, C, M, Mixin, Extends, Emits>
- >
- export type WithLegacyAPI<T, D, C, M, Props> = T &
- Omit<Vue2ComponentOptions<Vue, D, M, C, Props>, keyof T>
|