Parcourir la source

support short prop declaration as prop: true (#3643)

Ivan Agafonov il y a 9 ans
Parent
commit
b47d773c58
2 fichiers modifiés avec 14 ajouts et 1 suppressions
  1. 1 1
      src/core/util/props.js
  2. 13 0
      test/unit/features/options/props.spec.js

+ 1 - 1
src/core/util/props.js

@@ -91,7 +91,7 @@ function assertProp (
     return
   }
   let type = prop.type
-  let valid = !type
+  let valid = !type || type === true
   const expectedTypes = []
   if (type) {
     if (!Array.isArray(type)) {

+ 13 - 0
test/unit/features/options/props.spec.js

@@ -244,6 +244,19 @@ describe('Options props', () => {
       expect(console.error.calls.count()).toBe(2)
       expect('Expected Boolean').toHaveBeenWarned()
     })
+
+    it('optional prop of any type (type: true or prop: true)', () => {
+      makeInstance(1, true)
+      expect(console.error.calls.count()).toBe(0)
+      makeInstance('any', true)
+      expect(console.error.calls.count()).toBe(0)
+      makeInstance({}, true)
+      expect(console.error.calls.count()).toBe(0)
+      makeInstance(undefined, true)
+      expect(console.error.calls.count()).toBe(0)
+      makeInstance(null, true)
+      expect(console.error.calls.count()).toBe(0)
+    })
   })
 
   it('should warn data fields already defined as a prop', () => {