mirror of https://github.com/vuejs/vue.git
				
				
				
			
		
			
				
	
	
		
			101 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
import VNode from "../src/core/vdom/vnode";
 | 
						|
import { Component } from "./component";
 | 
						|
 | 
						|
declare type InternalComponentOptions = {
 | 
						|
  _isComponent: true;
 | 
						|
  parent: Component;
 | 
						|
  _parentVnode: VNode;
 | 
						|
  render?: Function;
 | 
						|
  staticRenderFns?: Array<Function>;
 | 
						|
};
 | 
						|
 | 
						|
type InjectKey = string | Symbol;
 | 
						|
 | 
						|
declare type ComponentOptions = {
 | 
						|
  componentId?: string;
 | 
						|
 | 
						|
  // data
 | 
						|
  data: object | Function | void;
 | 
						|
  props?: { [key: string]: 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;
 | 
						|
 | 
						|
  // assets
 | 
						|
  directives?: { [key: string]: object };
 | 
						|
  components?: { [key: string]: Component };
 | 
						|
  transitions?: { [key: string]: object };
 | 
						|
  filters?: { [key: string]: Function };
 | 
						|
 | 
						|
  // context
 | 
						|
  provide?: Record<string | symbol, any> | (() => Record<string | symbol, any>);
 | 
						|
  inject?:
 | 
						|
    | { [key: string]: InjectKey | { from?: InjectKey; default?: any } }
 | 
						|
    | Array<string>;
 | 
						|
 | 
						|
  // component v-model customization
 | 
						|
  model?: {
 | 
						|
    prop?: string;
 | 
						|
    event?: string;
 | 
						|
  };
 | 
						|
 | 
						|
  // misc
 | 
						|
  parent?: Component;
 | 
						|
  mixins?: Array<object>;
 | 
						|
  name?: string;
 | 
						|
  extends?: Component | object;
 | 
						|
  delimiters?: [string, string];
 | 
						|
  comments?: boolean;
 | 
						|
  inheritAttrs?: boolean;
 | 
						|
 | 
						|
  // Class API
 | 
						|
  abstract?: any
 | 
						|
 | 
						|
  // private
 | 
						|
  _isComponent?: true;
 | 
						|
  _propKeys?: Array<string>;
 | 
						|
  _parentVnode?: VNode;
 | 
						|
  _parentListeners?: object | null;
 | 
						|
  _renderChildren?: Array<VNode> | null;
 | 
						|
  _componentTag: string | null;
 | 
						|
  _scopeId: string | null;
 | 
						|
  _base: Component;
 | 
						|
};
 | 
						|
 | 
						|
declare type PropOptions = {
 | 
						|
  type: Function | Array<Function> | null;
 | 
						|
  default: any;
 | 
						|
  required: boolean | null;
 | 
						|
  validator: Function | null;
 | 
						|
};
 |