Угловой интерфейс для http запроса: ключ JSON не всегда один и тот же - PullRequest
0 голосов
/ 19 ноября 2018

Я делаю запрос к API, который возвращает JSON, но ключ не всегда согласован, но я знаю, что он будет основан на входных параметрах. Я новичок в том, как работает Angular HttpClient. Я пытаюсь настроить интерфейс следующим образом:

У меня есть функция:

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

Я бы хотел, чтобы мой интерфейс был таким:

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

}

Это, очевидно, не работает, но я надеюсь, что моя логика дает понять, что я пытаюсь достичь.

Редактировать: это API, который я пытаюсь использовать: https://www.currencyconverterapi.com/docs

1 Ответ

0 голосов
/ 19 ноября 2018

Прежде всего, Вы не можете достичь своей цели во время выполнения машинописи.

Если вы не знаете, как называются ваши ключи объекта, вы можете использовать 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 }

Вы можете узнать больше, посмотрев на это Машинное глубокое погружение

...