Как получить размер карты generi c в машинописном тексте 2.8.3 - PullRequest
0 голосов
/ 19 июня 2020

Я работаю над приложением, которое работает на Angular 2.4 и Typescript 2.8.3. Я определил общую карту c и хочу узнать размер карты после добавления / удаления определенных элементов.

let map  = new Map<String, String>();
...

Здесь map.size() вызывает ошибку:

Невозможно вызвать выражение, в типе которого отсутствует машинописный текст сигнатуры вызова. Тип «Номер» не имеет совместимых подписей вызовов. ts (2349)

Я также пробовал приведенный ниже фрагмент, но он всегда возвращает 0, даже если на карте определены элементы!

Objects.keys(map).length // 0

1 Ответ

1 голос
/ 19 июня 2020

map.size - это свойство, которое возвращает число , это не функция.

let map  = new Map<String, String>();
console.log(map.size); //-> 0

Об этом сообщает ошибка в подробном виде.

Тип «Номер» не имеет совместимых сигнатур вызовов

Это означает, что у вас есть Number, и вы пытаетесь call использовать (). Number не может быть вызван, потому что типы для number не указывают сигнатуру для вызова. Из этого вы можете сделать вывод, что значение перед вашим () является числом, а не ссылкой на функцию.


Кроме того, Object.keys(map) никогда не даст вам ключи на карте. Это даст вам свойства объекта карты, но не данные на карте.

Для работы с данными карты вам необходимо использовать методы, определенные классом Map .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...