如何在 JSON 模式中使用“任意”类型?

Ale*_*lls 6 javascript jsonschema node.js

我正在看这个:

https://json-schema.org/understanding-json-schema/reference/type.html

我有一个带有函数属性的对象,但我不想将additionalProperties 设置为true。所以我想做一些类似的事情:

      "properties": {
        "getHostNameSync": {
          "type": "any",   // << any
          "required": false
        }
      }
Run Code Online (Sandbox Code Playgroud)

但它说我的架构定义无效。有没有办法包含函数属性?

gre*_*nis 15

使用 JSON Schema,您不必指定任何内容。该语法是声明性的并添加了限制。因此,如果您不想限制允许的值类型,请不要使用关键字type。

  "properties": {
    "getHostNameSync": {}
  }
Run Code Online (Sandbox Code Playgroud)

getHostNameSync由于没有声明任何限制,这将允许该属性实际上是任何东西。

注意如果您使用的是草案 6 或更高版本,则可以使用true代替{}并获得相同的效果。