首页 > 解决方案 > http 请求的 Angular 接口:JSON 键并不总是相同

问题描述

我正在向返回 JSON 的 API 发出请求,但密钥并不总是一致的,但我确实知道它将基于输入参数。我对Angular HttpClient工作原理很陌生。我正在尝试设置这样的界面:

我有我的功能:

convert(amount: number, fromCurrency: string, targetCurrency: number): number

我希望我的界面是这样的:

interface UserResponse {
    fromCurrency + "_" + targetCurrency: string  

}

这显然是行不通的,但我希望我的逻辑能够体现在我想要实现的目标上。

编辑:这是我尝试使用的 API: https ://www.currencyconverterapi.com/docs

标签: angularangular-httpclient

解决方案


首先,您无法在打字稿运行时实现您的目的。

如果您不知道对象键的名称,可以使用Index Signatures

这可能与您的问题关系不大。但这是另一种方式

实现“动态键式”

例如

interface Foo {
  [key:string]: number
}

let foo: Foo = {x:1,y:2,..and what ever number type property};

您也可以先定义所有类型:

type Index = 'USD_PHP' | 'b' | 'c'
type FromIndex = { [k in Index]?: number }

您可以通过查看此Typescript 深入了解了解更多信息


推荐阅读