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

如何创建同名导入类型与本地类型定义的联合类型

如何创建同名导入类型与本地类型定义的联合类型

嘿,我来帮你搞定这个问题!咱们一步一步拆解,先解决同名类型冲突的问题,再处理mapOf函数的限制~

首先,你导入的v1 Schema和本地v2的Schema重名了,直接用肯定会冲突,所以第一步得给导入的类型重命名,这样就能同时用两个类型了:

// 把v1的Schema重命名为V1Schema,避免和本地的Schema冲突
import { Schema as V1Schema } from './v1types';

// 这是你本地v2的Schema定义
interface Schema {
  // 这里写你的v2 Schema的结构
  v2SpecificField: string;
}

接下来,咱们就能轻松定义包含两个类型的联合类型了,直接把重命名后的V1Schema和本地Schema用|连起来,这就是你要的NamedSchemas:

// 现在NamedSchemas就是v1和v2 Schema的联合类型啦
type NamedSchemas = V1Schema | Schema;

然后说说你遇到的mapOf函数的问题——它只接受字符串,不能直接传类型引用对吧?这是因为TypeScript的类型是编译时的概念,运行时根本不存在,所以mapOf只能认字符串形式的类型名称。咱们只需要把刚才定义的联合类型的名字(也就是"NamedSchemas")作为字符串传进去就行:

// 直接传联合类型的名字字符串给mapOf
const mySchemaMap = mapOf("NamedSchemas");

如果你的mapOf函数是用来生成对应类型的映射结构,只要确保NamedSchemas这个类型在你的代码里已经正确定义,传这个字符串名称就完全没问题啦。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:44:31