10000 check required props · mikehins/vue@9510eac · GitHub
[go: up one dir, main page]

Skip to content

Commit 9510eac

Browse files
committed
check required props
1 parent 775c982 commit 9510eac

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/compiler/compile.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,8 @@ function teardownDirs (vm, dirs, destroying) {
142142
var propsLinkFn, parentLinkFn, replacerLinkFn
143143

144144
// 1. props
145-
propsLinkFn = props && containerAttrs
146-
? compileProps(el, containerAttrs, props)
145+
propsLinkFn = props
146+
? compileProps(el, containerAttrs || {}, props)
147147
: null
148148

149149
// only need to compile other attributes for
@@ -414,7 +414,7 @@ function compileProps (el, attrs, propDescriptors) {
414414
// normalize prop string/descriptor
415415
if (typeof descriptor === 'object') {
416416
name = descriptor.name
417-
assertions = descriptor.assertions
417+
assertions = descriptor
418418
} else {
419419
name = descriptor
420420
assertions = null
@@ -445,7 +445,7 @@ function compileProps (el, attrs, propDescriptors) {
445445
name: name,
446446
raw: value,
447447
path: path,
448-
assertions: descriptor,
448+
assertions: assertions,
449449
mode: propBindingModes.ONE_WAY
450450
}
451451
var tokens = textParser.parse(value)
@@ -479,6 +479,10 @@ function compileProps (el, attrs, propDescriptors) {
479479
}
480480
}
481481
props.push(prop)
482+
} else if (assertions && assertions.required) {
483+
_.warn(
484+
'Required prop missing: ' + name
485+
)
482486
}
483487
}
484488
return makePropsLinkFn(props)

0 commit comments

Comments
 (0)
0