You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何扩展TypeScript中递归的JSONSchema4接口以添加自定义属性

可以实现,通过TypeScript的**模块扩展(Module Augmentation)**特性即可给第三方类型定义扩展自定义字段,操作方法如下:

  1. 在你的项目中新建一个全局声明文件,比如命名为 json-schema-augment.d.ts
  2. 写入以下声明代码:
// 扩展@types/json-schema中的JSONSchema4类型
declare module 'json-schema' {
  interface JSONSchema4 {
    // 新增你需要的自定义字段
    instanceof?: string
  }
}

// 如果你不需要引入模块就能全局使用JSONSchema4类型,也可以补充全局声明
declare global {
  interface JSONSchema4 {
    instanceof?: string
  }
}

效果说明

原JSONSchema4的properties属性的子项本身就是JSONSchema4类型,接口合并完成后,不管是顶层的schema还是嵌套在properties里的子schema,都支持使用instanceof字段,不会触发类型报错。
使用示例:

const mySchema: JSONSchema4 = {
  instanceof: 'Object',
  properties: {
    createTime: {
      instanceof: 'Date' // 此处类型校验正常通过
    }
  }
}

注意事项

确保你的tsconfig.json的include配置项包含了你新建的.d.ts声明文件,否则TypeScript不会加载该扩展规则。

内容的提问来源于stack exchange,提问作者Leo Jiang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:45:02