В дополнение к использованию объекта map- , подобного , в течение некоторого времени был фактический Map
объект , который доступен в TypeScript при компиляции на ES6 , или при использовании polyfill с определениями типа ES6 :
let people = new Map();
Он поддерживает те же функции, что и Object
, и многое другое, с немного отличающимся синтаксисом:
// Adding an item (a key-value pair):
people.set("John", { firstName: "John", lastName: "Doe" });
// Checking for the presence of a key:
people.has("John"); // true
// Retrieving a value by a key:
people.get("John").lastName; // "Doe"
// Deleting an item by a key:
people.delete("John");
Это само по себе имеет несколько преимуществ перед использованием объекта map- , подобного , например:
Object
(нет, Object
не поддерживает числа, он преобразует их в строки) --noImplicitAny
, как Map
всегда имеет тип и тип значение , тогда как объект может не иметь индексной подписи Object
Кроме того, [Map
обеспечивает более мощный и элегантный API для обычных задач, большинство из которых недоступны с помощью простых Object
s без взлома вспомогательных функций (хотя для некоторых из них требуется полный итеративный итеративный полигон ES6 для целей ES5 или ниже) :
// Iterate over Map entries:
people.forEach((person, key) => ...);
// Clear the Map:
people.clear();
// Get Map size:
people.size;
// Extract keys into array (in insertion order):
let keys = Array.from(people.keys());
// Extract values into array (in insertion order):
let values = Array.from(people.values());
Класс DeleteArguments
имеет метод getDeleteProjectContents
, который даст вам это значение.
Получите DeleteArguments
, используя вызов getArguments()
для класса DeleteParticipant
, который расширяет ваш участник удаления.