首页 > 解决方案 > 如何在 typescript 中从 JSON 响应中以简写形式写出许多变量

问题描述

我有一个相对琐碎的问题,说我需要从 JSON 响应创建一个新类型

我的 JSON 响应(我们称之为标签响应)如下

{
id1: "someString"
someField: "someString"
someMoreFields: "someString"
EvenMorefields: "someString"
EvenMoreMoreFields: "someString"
SoManyManyFields: "someString"
EndlessFields: "someString"
}

现在,如果我选择从此响应中创建一个类型,它将如下所示(如果我错了,请纠正我)

export type LabelResponse =
      {
       Fields: string;
       FieldsMore:string;
       MoreMoreFields:string;
       MoreMoreMoreFields:string;
      }

这非常冗长,因为 ID 越多,我需要的字段就越多,并且所有 Id 都属于同一类型。

有没有办法可以简写,例如,在我的函数参数中,而不是为它声明一个类型

例如,而不是

function myFunction(label:LabelResponse)

是否可以在参数括号中声明我的类型?像这样:

function myFunction(label:DeclareMyTypeHereSomehow?)

标签: javascripttypescripttypechecking

解决方案


您可以创建一个记录类型,包括一个字符串键和一个值键,如下所示:

type LabelResponse = Record<string, string>

const data: LabelResponse = {
    id1: "someString",
    id2: "someString",
    someRandomString: "someString",
    someWeirdString: "someString",
}

操场


推荐阅读