инициализация карты от JSON в TypeScript - PullRequest
0 голосов
/ 22 апреля 2020

Я пытался инициализировать тип карты из BLOB-объекта JSON, когда у меня есть определенный тип для ожидаемого ответа JSON. Например, у нас есть футболка размером type.

. Вот как выглядит капля JSON:

const blob = `{
    "name": "TShirtSize",
    "description": {
        "S": "Small",
        "M": "Medium",
        "L": "Large"
    }
}`

, и это тип, который я создал для JSON blob.

export type TShirtType = {
    name?: string
    description: Map<string, string>
}

Когда я анализирую JSON как TShirtType, я не буду преобразовывать description в Карту <string, string>. Я получаю сообщение об ошибке tshirt.description.get не является функцией.

const tshirt = JSON.parse(blob) as TShirtType
if (tshirt.description !== undefined) {
    console.log(tshirt.description)
    console.log(tshirt.description.get('S'))
}

Я мог бы определить это как { [key: string]: string } и вызвать tshirt.description['S'], чтобы получить значение, но я sh вместо использования Map. Мне было интересно, если это возможно.

...