This commit is contained in:
jamesnakagawa 2025-05-05 20:38:32 +00:00 committed by GitHub
commit 75f7b61f9b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 1 deletions

View File

@ -389,15 +389,24 @@ describe('component props', () => {
bool: { type: Boolean, required: true }, bool: { type: Boolean, required: true },
str: { type: String, required: true }, str: { type: String, required: true },
num: { type: Number, required: true }, num: { type: Number, required: true },
null1: { type: null, required: true },
null2: { type: null, required: true },
null3: { type: null, required: true },
}, },
setup() { setup() {
return () => null return () => null
}, },
} }
render(h(Comp), nodeOps.createElement('div')) render(
h(Comp, { null2: null, null3: undefined }),
nodeOps.createElement('div'),
)
expect(`Missing required prop: "bool"`).toHaveBeenWarned() expect(`Missing required prop: "bool"`).toHaveBeenWarned()
expect(`Missing required prop: "str"`).toHaveBeenWarned() expect(`Missing required prop: "str"`).toHaveBeenWarned()
expect(`Missing required prop: "num"`).toHaveBeenWarned() expect(`Missing required prop: "num"`).toHaveBeenWarned()
expect(`Missing required prop: "null1"`).toHaveBeenWarned()
expect(`Missing required prop: "null2"`).toHaveBeenWarned()
expect(`Missing required prop: "null3"`).toHaveBeenWarned()
}) })
test('warn on type mismatch', () => { test('warn on type mismatch', () => {

View File

@ -688,6 +688,11 @@ function validateProp(
if (value == null && !required) { if (value == null && !required) {
return return
} }
// null type but required
if (type == null && required && value == null) {
warn('Missing required prop: "' + name + '"')
return
}
// type check // type check
if (type != null && type !== true && !skipCheck) { if (type != null && type !== true && !skipCheck) {
let isValid = false let isValid = false