Создание экземпляра новой пары значений ключей и добавление существующего словаря в Type Script

#typescript #dictionary #keyvaluepair

#typescript #словарь #пара значений ключей

Вопрос:

Я определил новый класс dictionary, но я не уверен, как определить Dictionary атрибут. Существует файл json с именем Switches:

{«ShowImage»: true, «showText»: false, «showButton», true}

 import * as switches from '../switches.json';

export class DictionaryClass{
    Dictionary?: { [key: string]: boolean };
}

export function getDictionary() {

   const dictionaryClass = new DictionaryClass();
   dictionaryClass.Dictionary = { [key: string]: boolean };
    for (let entry in switches) {
        dictionaryClass.Dictionary[entry] = switches[entry];
    }
return dictionaryClass;
  

}

В этом примере я не уверен, как создать экземпляр dictionary, и это один из способов, который я пробовал, но который не работает:

 const dictionaryClass = new DictionaryClass();
dictionaryClass.Dictionary = { [key: string]: boolean };
  

Я также пытался сделать следующее, но это тоже не работает

   const dictionaryClass = new DictionaryClass();
  dictionaryClass.Dictionary = switches;
  

Может ли кто-нибудь указать мне, как правильно создать его экземпляр? Кроме того, вместо зацикливания словаря json, можно ли в любом случае добавить весь этот словарь json к этому dictionary объекту?

Ответ №1:

Честно говоря, нет смысла использовать a class здесь, поскольку ваш класс ничего не делает.

То, что вам нужно type , — это то, что определяет форму словаря, который у вас есть здесь:

 type BooleanDictionary = { [key: string]: boolean }
  

Все эти другие вещи совершенно не нужны, потому что ваш JSON уже подходит для этого типа сам по себе! В этом преимущество создания кода, который полагается на типы и интерфейсы, а не на конкретные классы.

Ссылка на игровую площадку