Преглед на файлове

update flow annotations

Evan You преди 10 години
родител
ревизия
e6871a33c1
променени са 6 файла, в които са добавени 12 реда и са изтрити 9 реда
  1. 0 1
      flow/component.js
  2. 0 1
      flow/global-api.js
  3. 1 1
      flow/options.js
  4. 1 1
      flow/vnode.js
  5. 4 2
      src/platforms/web/runtime/components/transition-group.js
  6. 6 3
      src/platforms/web/runtime/components/transition.js

+ 0 - 1
flow/component.js

@@ -14,7 +14,6 @@ declare interface Component {
   // assets
   static directive: (id: string, def?: Function | Object) => Function | Object | void;
   static component: (id: string, def?: Class<Component> | Object) => Class<Component>;
-  static transition: (id: string, def?: Object) => Object | void;
   static filter: (id: string, def?: Function) => Function | void;
 
   // public properties

+ 0 - 1
flow/global-api.js

@@ -14,7 +14,6 @@ declare interface GlobalAPI {
 
   directive: (id: string, def?: Function | Object) => Function | Object | void;
   component: (id: string, def?: Class<Component> | Object) => Class<Component>;
-  transition: (id: string, def?: Object) => Object | void;
   filter: (id: string, def?: Function) => Function | void;
 
   // allow dynamic method registration

+ 1 - 1
flow/options.js

@@ -56,7 +56,7 @@ declare type ComponentOptions = {
   _isComponent?: true,
   _propKeys?: Array<string>,
   _parentVnode?: VNode,
-  _parentListeners?: ?{ [key: string]: Function | Array<Function> },
+  _parentListeners?: ?Object,
   _renderChildren?: ?VNodeChildren
 }
 

+ 1 - 1
flow/vnode.js

@@ -44,7 +44,7 @@ declare interface VNodeData {
   staticAttrs?: { [key: string]: string };
   hook?: { [key: string]: Function };
   on?: { [key: string]: Function | Array<Function> };
-  transition?: string | Object;
+  transition?: Object;
   inlineTemplate?: {
     render: Function,
     staticRenderFns: Array<Function>

+ 4 - 2
src/platforms/web/runtime/components/transition-group.js

@@ -1,3 +1,5 @@
+/* @flow */
+
 // Provides transition support for list items.
 // supports move transitions using the FLIP technique.
 
@@ -29,7 +31,7 @@ delete props.mode
 export default {
   props,
 
-  render (h) {
+  render (h: Function) {
     const tag = this.tag || this.$vnode.data.tag || 'span'
     const map = Object.create(null)
     const prevChildren = this.prevChildren = this.children
@@ -127,7 +129,7 @@ export default {
   },
 
   methods: {
-    hasMove (el, moveClass) {
+    hasMove (el: Element, moveClass: string): boolean {
       /* istanbul ignore if */
       if (!hasTransition) {
         return false

+ 6 - 3
src/platforms/web/runtime/components/transition.js

@@ -1,3 +1,5 @@
+/* @flow */
+
 // Provides transition support for a single element/component.
 // supports transition mode (out-in / in-out)
 
@@ -18,7 +20,7 @@ export const transitionProps = {
   appearActiveClass: String
 }
 
-export function extractTransitionData (comp) {
+export function extractTransitionData (comp: Component): Object {
   const data = {}
   const options = comp.$options
   // props
@@ -38,7 +40,7 @@ export default {
   name: 'transition',
   props: transitionProps,
   _abstract: true,
-  render (h) {
+  render (h: Function) {
     let children = this.$slots.default
     if (!children) {
       return
@@ -91,10 +93,11 @@ export default {
     // apply transition data to child
     // use getRealChild() to ignore abstract components e.g. keep-alive
     const child = getRealChild(rawChild)
+    if (!child) return
     child.key = child.key || `__v${child.tag + this._uid}__`
     const data = (child.data || (child.data = {})).transition = extractTransitionData(this)
     const oldRawChild = this._vnode
-    const oldChild = getRealChild(oldRawChild)
+    const oldChild: any = getRealChild(oldRawChild)
 
     // handle transition mode
     if (mode && oldChild && oldChild.data && oldChild.key !== child.key) {