TypeScript中如何将接口键声明为指定字符串类型?
TypeScript 类型结构修改方案:将 region 作为字符串键的索引类型
你需要将原类型结构调整为以字符串类型的region作为键,对应值包含categoryId和analyzes的结构,这可以通过TypeScript索引签名实现,具体方案如下:
实现方式
方式一:拆分子类型
先定义单个区域对应的分析数据类型,再通过索引签名构建最终类型,便于子结构复用:
// 定义单个区域的分析数据结构 type CategoryAnalyzeItem = { categoryId: string; analyzes: IAnalyzesStorageData[]; }; // 最终类型,以任意字符串作为region键 export type TCategoryAnalyzes = { [region: string]: CategoryAnalyzeItem; };
方式二:直接合并定义
如果不需要单独复用子类型,也可以直接在索引签名中嵌套结构:
export type TCategoryAnalyzes = { [region: string]: { categoryId: string; analyzes: IAnalyzesStorageData[]; }; };
示例用法
修改后的类型可按如下方式使用,每个键都是字符串类型的region值:
const sampleData: TCategoryAnalyzes = { "华北地区": { categoryId: "food-001", analyzes: [/* 填入IAnalyzesStorageData类型的数据 */] }, "华东地区": { categoryId: "electronics-002", analyzes: [] } };
内容的提问来源于stack exchange,提问作者Gadzhiev Islam
相关产品推荐
相关产品推荐

