Просмотр исходного кода

fix(types): support string type for style in VNode data (#9728)

fix #9727
Vitor Luiz Cavalcanti 7 лет назад
Родитель
Сommit
982d5a492f
3 измененных файлов с 27 добавлено и 2 удалено
  1. 1 1
      flow/vnode.js
  2. 25 0
      types/test/vue-test.ts
  3. 1 1
      types/vnode.d.ts

+ 1 - 1
flow/vnode.js

@@ -42,7 +42,7 @@ declare interface VNodeData {
   staticClass?: string;
   class?: any;
   staticStyle?: { [key: string]: any };
-  style?: Array<Object> | Object;
+  style?: string | Array<Object> | Object;
   normalizedStyle?: Object;
   props?: { [key: string]: any };
   attrs?: { [key: string]: string };

+ 25 - 0
types/test/vue-test.ts

@@ -213,3 +213,28 @@ class Decorated extends Vue {
 
 const obj = Vue.observable({ a: 1 })
 obj.a++
+
+// VNodeData style tests.
+const ComponentWithStyleInVNodeData = Vue.extend({
+  render (h) {
+    const elementWithStyleAsString = h('div', {
+      style: 'background-color: red;'
+    });
+
+    const elementWithStyleAsObject = h('div', {
+      style: { backgroundColor: 'green' }
+    });
+
+    const elementWithStyleAsArrayOfObjects = h('div', {
+      style: [
+        { backgroundColor: 'blue' }
+      ]
+    });
+
+    return h('div', undefined, [
+      elementWithStyleAsString,
+      elementWithStyleAsObject,
+      elementWithStyleAsArrayOfObjects
+    ]);
+  }
+});

+ 1 - 1
types/vnode.d.ts

@@ -48,7 +48,7 @@ export interface VNodeData {
   staticClass?: string;
   class?: any;
   staticStyle?: { [key: string]: any };
-  style?: object[] | object;
+  style?: string | object[] | object;
   props?: { [key: string]: any };
   attrs?: { [key: string]: any };
   domProps?: { [key: string]: any };