Как создать тип подписи индекса с номером в качестве ключа в TypeScript, используя quicktype? - PullRequest
0 голосов
/ 18 апреля 2020

В настоящее время я пытаюсь создать интерфейсы TypeScript с quicktype и сейчас сталкиваюсь с проблемой создания переменной с типом подписи индекса с номером в качестве ключа.

Мне уже удалось генерировать переменную с типом подписи индекса и строкой в ​​качестве ключа. Кажется, что это поведение по умолчанию, потому что я не определил строку как тип ключа.

Это схема json:

{
    "$id": "Test",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "Test",
    "definitions": {
        "A": {
            "type": "object",
            "properties": {
                "x": {
                    "type": "integer"
                }
            }
        }
    },
    "type": "object",
    "properties": {
        "mapA": {
            "type": "object",
            "additionalProperties": {
                "$ref": "#/definitions/A"
            }
        }
    },
    "required": [
        "mapA"
    ]
}

И это сгенерированные интерфейсы TypeScript:

export interface Test {
    mapA: { [key: string]: A };
}

export interface A {
    x?: number;
}

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

export interface Test {
    mapA: { [key: number]: A };
}

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 04 мая 2020

Похоже, ошибка для меня. Если я проверяю ваш ожидаемый код TypeScript (с ключом подписи индекса als numbers) с типом источника «TypeScript» и целевым языком «JSON Схема», quicktype создает массив вместо карты.

Протестировано здесь .

...