#typescript #dictionary #keyvaluepair
#typescript #словарь #keyvaluepair
Вопрос:
Я хотел создать объект карты с объектом в качестве ключа и числом в качестве значения в Typescript. Я определил объект карты следующим образом:
myMap: Map<MyObj,number>;
myObj: MyObj;
и когда я пытаюсь добавить пару к этому объекту карты:
this.myMap[myObj]=1;
Это говорит мне, что тип TS2538 ‘myObj’ не может использоваться в качестве индексного типа. Возможно ли это в Typescript?
Ответ №1:
Вы должны использовать set
функцию, например
this.myMap.set(myObj, 1);
Комментарии:
1. Спасибо, это работает. Есть ли способ, которым я могу привязать значение этой карты к входным данным? Я попробовал
<input id="param{{myObj.id}}" name="param{{myObj.id}}" type="number" maxlength="10" [(ngModel)]="myMap[myObj]
в табличной директиве. Таким образом, он не мог различать ключи, я думаю, он не мог сравнивать ключи, и, насколько я знаю, не существует метода equals для различения ключей карты.2. @oksuzlerOmer Возможно, вы захотите прочитать это developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /… и если у вас все еще есть проблемы, тогда откройте новый вопрос.