Что такое тип {[key: string]: boolean; } имею в виду?

Запуск в такую вещь в последнее время, объявление функции:

static required(control: AbstractControl): {
        [key: string]: boolean;
    };

Что это за возвращаемое значение? Объект с произвольным количеством свойств, где каждый из них является логическим и имеет имя, которое выглядит как строка? Я думаю, что это более типичный вопрос, но на всякий случай кто-то задается вопросом, где я нашел это - это класс угловых Validators.

Ответ 1

Это структура ключевых/значений. Ключ - это string а значение - boolean. Например:

let map : { [key: string]: boolean} = {};
map["foo"] = true;
map["bar"] = false;
map["foobar"] = "foo"; // Throws exception
map[1] = true; // Curiously doesn't throws exception
map.foo = true; // Throws exception

Проверьте этот образец на детской площадке.

Индексируемые типы.