ajv-validator / ajv-validator/ajv

`strictRequired` should recognize properties defined in parent schema

Ouverte
#1,950 3 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
limitation
Langage dominant
TypeScript
Étoiles
14.8k
Forks
1k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

**What version of Ajv are you using? Does the issue happen if you use the latest version?**

8.11.0

**Ajv options object**

```javascript
{ strict: true, strictRequired: true }
```

**JSON Schema**

```json
{
"type": "object",
"properties": {
"a": {"type": "number"},
"b": {"type": "number"},
"c": {"type": "number"},
"d": {"type": "number"}
},
"if": {
"required": ["a"]
},
"then": {
"required": ["b", "c"]
}
}
```

**Sample data**

(Does not compile)

**Your code**

```javascript
new Ajv({ strict: true }).compile({
type: "object",
properties: {
a: {type: "number"},
b: {type: "number"},
c: {type: "number"},
d: {type: "number"},
},
if: {
required: ["a"],
},
then: {
required: ["b", "c"],
},
})
```

**Validation result, data AFTER validation, error messages**

```
Error: strict mode: required property "a" is not defined at "#/if" (strictRequired)
```

**What results did you expect?**
No compile error

**Are you going to resolve the issue?**
I've tried digging into the error, but my attempts to solve it ended up making things worse... Will add notes in comments

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.