Как я могу linq как запрос с словарем в машинописи? - PullRequest
0 голосов
/ 29 октября 2018

Есть интерфейс словаря:

interface Dictionary<T> {
    [Key: string]: T;
}

И некоторый класс, который рассчитывает ежедневное повторение некоторых exersizes:

export class ClassName {
   DailyReapeatCount: Dictionary<number> = {};
}

Давайте инициализируем его:

let myClass = new ClassName();
        myClass.DailyReapeatCount['exersize_01'] = 3;
        myClass.DailyReapeatCount['exersize_02'] = 4;
        // ... and so on

Затем мне нужно проверить, есть ли у него exersize с DailyReapeatCount более 5:

// pseudo code there
let isAnyExist = myClass.DailyReapeatCount.some(p => p.value > 5);

Там я получаю уведомление ts:

Невозможно вызвать выражение, тип которого не требует вызоваподпись.Тип Номер не имеет совместимых подписей вызовов. "

Как мне получить этот запрос?

1 Ответ

0 голосов
/ 29 октября 2018

Используйте стандарт Карта (это то же самое, что Dictionary в C #):

const dictionary = new Map<string, number>([
  ["one", 1], 
  ["two", 2],
  ["five", 5],
]);

const values = Array.from(dictionary.values());
const isExist = values.some(v => v < 5);
console.log(isExist);

// In addition you can do dictionary-based things like:
console.log(dictionary.has("five")); // check is key exists
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...