Объявить тип объекта в классе - PullRequest
0 голосов
/ 29 ноября 2018

Я должен создать класс js, относящийся к формату json

{
  "rows": [{
    "value": {
        "comments": ${dInfo.description},
        "Tags": [],
        "metadataList": {
          "names": [],
          "metadata": {}
         },
  }]
}

Я хотел бы знать, как объявить metadata.

На самом деле я заявляю вот так.

export class Value {
  comments: string;
  Tags:string[];
  metadataList:{
    name:string[],
    metadata: Object
  }
}

Здесь metadataList не напечатано, что, я думаю, не лучшая практика.как я могу объявить metadataList с его типом?

1 Ответ

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

Если метаданные являются хранилищем ключей / значений, вы можете сделать тип немного уже, чем Object или {}, ужесточив значения типов:

class Value {
  comments: string;
  Tags:string[];
  metadataList:{
    name:string[],
    metadata: { [key: string]: string }
  }
}

const val = new Value();

val.metadataList = {
    name: ['Example'],
    metadata: {
        key: 'value',
        key2: 'value'
    }
};

Если у вас есть дополнительная информация оваши метаданные, возможно, я смогу сделать их еще более узкими.

...