Я стараюсь есть словарь с использованием объектов в качестве ключей:Как я могу использовать словарь в качестве ключей?
api: {[key: string]: string} = {
getItems: 'api/v1/items/all'
};
Если я пытаюсь использовать его var urlpath = api.getItems;
я получаю:
{[ключ объекта «GetItems» не существует на типе» : string]: string; ` }.
Если я изменить ее тип ключа к любому {[key: any]: string}
, я получаю:
Индекс подписи параметр типа должен быть «строка» или «номер».
я могу использовать его, как это, но это не то, что я хочу:
var urlpath = api['getItems'];
Как я могу иметь словарь с использованием объектов в качестве ключей?
Вам необходимо создать интерфейс или класс со всеми параметрами, которые вы хотите, включая getItems. Затем вы объявляете api как объект этого типа.Если вы заявляете, как вы это делаете, теперь TypScript не поймет его, потому что у него нет интерфейса – iberbeu
@iberbeu, ваше предложение работает, хотя было бы неплохо не использовать интерфейс. Теперь вы почему-то не понимаете это? – cfischer
Потому что это типизированный язык. Это означает, что вам всегда нужно определить интерфейс для каждого объекта. На самом деле это то, что вы ищете, когда переходите к машинописному описанию, что при попытке кодировать способ, которым вы это сделали, появляется сообщение об ошибке. Если вы все еще хотите сделать это таким образом, тогда вы должны отдать машинописный текст и продолжать работать напрямую с JS – iberbeu