gpt4 book ai didi

javascript - 使用 Electron 商店时来自 ajv 的严格模式警告

转载 作者:行者123 更新时间:2023-12-05 00:39:19 25 4
gpt4 key购买 nike

我想保存 object[]使用 electron-storeJSON Schema ,在阅读了 JSON Schema 的文档后我得到代码可以成功执行但有警告:

strict mode: "items" is 1-tuple, but minItems or maxItems/additionalItems are not specified or different at path "#/properties/todo"
我的代码是:
const Store = require('electron-store')

/** @type import('json-schema-typed').JSONSchema */
const schema = {
todo: {
type: 'array',
items: [true],
minItems: 0,
maxItems: 999,
additionalItems: {
type: 'object',
properties: {
id: {
type: 'number'
},
name: {
type: 'string'
}
}
}
}
}

const todoStore = new Store({ schema })

const todoItem = [{ id: 1, name: '11111' }]

todoStore.set('todo', todoItem)

console.log(todoStore.get('todo'))

const newTodo = [...todoStore.get('todo')]
newTodo.push({ id: 2, name: '22222' })

todoStore.set('todo', prev)

console.log(todoStore.get('todo'))

module.exports = todoStore

我添加 minItemsmaxItems ,但警告仍然出现。我检查了几个小时,但无法工作。谁能帮我?
顺便问一下我是否使用 JSON Schema以正确的方式?
您可以安装 electron-store直接用 node ./xxx.js执行
谢谢帮助我。

最佳答案

您的架构没有任何问题。
AJV 版本 8 引入了默认开启的“严格模式”。它旨在防止在编写模式时出错。
默认值之一是在使用 items 时防止不受约束的项。元组形式。

Ajv also logs a warning if "items" is an array (for schema thatdefines a tuple) but neither "minItems" nor"additionalItems"/"maxItems" keyword is present (or have a wrongvalue):


https://ajv.js.org/strict-mode.html#unconstrained-tuples
我会争辩说,虽然你没有设置 additionalItems为 false,您在设置 maxItems 时仍然限制了所有值.
我会在你的 behlaf 上提出一个问题并在评论中链接。
在它得到修复之前(如果它得到修复),您可以在初始化 AJV ( https://ajv.js.org/options.html#stricttuples ) 时使用配置禁用此严格模式元素
const ajv = new Ajv({ strictTuples: false });

关于javascript - 使用 Electron 商店时来自 ajv 的严格模式警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68419621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com