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

如何从JSON文件的属性数组中获取字符串联合类型?

从JSON文件自动生成Permission联合类型

完全可以实现,借助TypeScript的类型工具就能自动提取JSON中所有数组值作为联合类型,无需手动维护,步骤如下:

  • 配置TypeScript支持JSON导入
    先确保tsconfig.json中开启相关选项:

    {
      "compilerOptions": {
        "resolveJsonModule": true,
        "esModuleInterop": true
        // 其他项目配置...
      }
    }
    
  • 导入JSON并提取类型
    假设你的JSON文件名为permissions.json,通过以下代码自动生成目标类型:

    import permissions from './permissions.json';
    
    // 提取所有对象属性对应的数组类型
    type PermissionArrays = typeof permissions[keyof typeof permissions];
    // 从数组类型中提取元素的联合类型
    type Permission = PermissionArrays[number];
    

    此时Permission会自动推断为'a' | 'b',后续JSON中新增任何权限值,这个类型都会同步更新。

  • 验证类型效果
    可以通过代码测试类型约束是否生效:

    const validPerm: Permission = 'a'; // 合法
    const validPerm2: Permission = 'b'; // 合法
    const invalidPerm: Permission = 'c'; // 类型报错,符合预期
    

内容的提问来源于stack exchange,提问作者João

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:04:51