如何在 TypeScript 中定义结构?

分享于2023年03月15日 angular java json typescript 问答
【问题标题】:How to define a structure in TypeScript?如何在 TypeScript 中定义结构?
【发布时间】:2023-03-14 15:06:02
【问题描述】:

我有以下 Json 身体结构。我想将其用作 Angular 8 中 POST 调用的原始主体,来自表单的输入数据,我想使其成为 JSON 结构或 Type Script 中的某些类结构,但不知道如何实现:

{
    "valueMap": {
        "A1": {
            "price": 100,
            "remaining": 200
        },
        "A2": {
            "price": 100,
            "remaining": 200
        }
    }
}

我在 Java 中做了同样的事情:

class Request {
  Map valueMap = new HashMap<>();
}

class Amount {
  double price;
  double remaining;
}


【解决方案1】:

Typescript 中的语法非常接近用 Java 编写的语法。以下是您将使用的接口示例:

interface Values {
  [K: string]: Amount
}


interface Amount {
  price: number
  remaining: number
}

const response: Values = {
  "Key1": {
    price: 1,
    remaining: 2,
  },
  "Key2": {
    price: 1,
    remaining: 2,
  }  
}


实现这项工作的技巧是 [K: string] 语法,它将索引的类型强制为字符串。

要记住的一个警告是,索引可能只是 number string

【讨论】: