[英]How to define a structure in TypeScript?
我有以下 Json 主体结构。 我想将它用作 Angular 8 中 POST 调用的原始主体,来自表单的输入数据,我想在 Type Script 中使其成为 JSON 结构或某些类结构,但不知道如何实现:
{
"valueMap": {
"A1": {
"price": 100,
"remaining": 200
},
"A2": {
"price": 100,
"remaining": 200
}
}
}
我在 Java 中做了同样的事情:
class Request {
Map<String, Amount> valueMap = new HashMap<>();
}
class Amount {
double price;
double remaining;
}
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
。
您可以简单地在组件内部创建一个对象,并在进行 API 调用时直接使用它
export class AppComponent {
valueMap = {};
constructor(http: HttpClient) {
this.valueMap['A1'] = {price: 10, remaining: 20};
this.valueMap['A2'] = {price: 10, remaining: 20};
http.post('http://example.com', this.valueMap)
.subscribe(() => {
});
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.