Доступна ли пара ключ-значение в Typescript?

Доступна ли ключ, пара значений в typescript? Если да, то как это сделать. Может ли кто-нибудь предоставить примеры примеров ссылок.

Ответ 1

Доступна ли пара ключ-значение в Typescript?

Да. Вызывается подпись индекса:

interface Foo {
   [key: string]: Bar;
} 
let foo:Foo = {};

Здесь ключи - string а значения - Bar.

Больше

Вы можете использовать Map es6 для правильных словарей, заполненных core-js.

Ответ 2

Самый простой способ - это что-то вроде:

var indexedArray: {[key: string]: number}

Ответ 3

Доступна ли пара ключ-значение в Typescript?

Если вы думаете о С# KeyValuePair <string, string>: Нет, но вы можете легко определить его самостоятельно:

interface KeyValuePair {
    key: string;
    value: string;
}

Использование:

let foo: KeyValuePair = { key: "k", value: "val" };

Ответ 4

Не для вопрошающего, а для всех остальных, которые заинтересованы: См. Как определить Typescript Карта пары значений ключа. где ключ - это число, а значение - массив объектов

Таким образом, решение:

let yourVar: Map<YourKeyType, YourValueType>;
// now you can use it:
yourVar = new Map<YourKeyType, YourValueType>();
yourVar[YourKeyType] = <YourValueType> yourValue;

Ура!

Ответ 5

Пример пары ключ-значение:

[key: string]: string

в качестве значения можно указать что угодно - если у вас есть программно заполненные значения, типы которых различаются, вы можете указать:

[key: string]: any

хоть и продолжай на свое усмотрение с any :)

Ответ 6

Другой простой способ - использовать кортеж:

// Declare a tuple type
let x: [string, number];
// Initialize it
x = ["hello", 10];
// Access elements
console.log("First: " + x["0"] + " Second: " + x["1"]);

Выход:

First: hello Second: 10

Ответ 7

class Pair<T1, T2> {
    private key: T1;
    private value: T2;

    constructor(key: T1, value: T2) {
        this.key = key;
        this.value = value;
    }

    getKey() {
        return this.key;
    }

    getValue() {
        return this.value;
    }
}
const myPair = new Pair<string, number>('test', 123);
console.log(myPair.getKey(), myPair.getValue());

Ответ 8

как сказал только Джек Миллер, вам не нужно создавать интерфейс, вы можете создать его как любой:

let keyValues: any = [
    { key: "2013 Volkswagen Polo 1.4", value: "" },
    { key: "Monthly installment", value: "R2,000.00" },
    { key: "Paid over", value: "72 Months" },
    { key: "Deposit amount", value: "R60,000.00" }
  ];

Ответ 9

Вы также можете рассмотреть возможность использования Record, например:

const someArray: Record<string, string>[] = [
    {'first': 'one'},
    {'second': 'two'}
];

Или напишите что-то вроде этого:

const someArray: {key: string, value: string}[] = [
    {key: 'first', value: 'one'},
    {key: 'second', value: 'two'}
];