8889841cimport VNode from 'core/vdom/vnode' import { DebuggerEvent } from 'v3/debug' import { SetupContext } from 'v3/apiSetup' import { Component } from './component' export type InternalComponentOptions = { _isComponent: true parent: Component _parentVnode: VNode render?: Function staticRenderFns?: Array } type InjectKey = string | Symbol /** * @internal */ export type ComponentOptions = { // v3 setup?: (props: Record, ctx: SetupContext) => unknown [key: string]: any componentId?: string // data data: object | Function | void props?: | string[] | Record | null | PropOptions> propsData?: object computed?: { [key: string]: | Function | { get?: Function set?: Function cache?: boolean } } methods?: { [key: string]: Function } watch?: { [key: string]: Function | string } // DOM el?: string | Element template?: string render: (h: () => VNode) => VNode renderError?: (h: () => VNode, err: Error) => VNode staticRenderFns?: Array<() => VNode> // lifecycle beforeCreate?: Function created?: Function beforeMount?: Function mounted?: Function beforeUpdate?: Function updated?: Function activated?: Function deactivated?: Function beforeDestroy?: Function destroyed?: Function errorCaptured?: () => boolean | void serverPrefetch?: Function renderTracked?(e: DebuggerEvent): void renderTriggerd?(e: DebuggerEvent): void // assets directives?: { [key: string]: object } components?: { [key: string]: Component } transitions?: { [key: string]: object } filters?: { [key: string]: Function } // context provide?: Record | (() => Record) inject?: | { [key: string]: InjectKey | { from?: InjectKey; default?: any } } | Array // component v-model customization model?: { prop?: string event?: string } // misc parent?: Component mixins?: Array name?: string extends?: Component | object delimiters?: [string, string] comments?: boolean inheritAttrs?: boolean // Legacy API abstract?: any // private _isComponent?: true _propKeys?: Array _parentVnode?: VNode _parentListeners?: object | null _renderChildren?: Array | null _componentTag: string | null _scopeId: string | null _base: typeof Component } export type PropOptions = { type?: Function | Array | null default?: any required?: boolean | null validator?: Function | null }