Вопросы

Функция Typescript, принимающая общий параметр и массив строк

Я создаю универсальную функцию, чтобы проверить, есть ли у универсального объекта свойство, заданное массивом строк. Чтобы быть более конкретным:

const staticStrings = ['name', 'age', 'address', 'photoUrl'...];
const genObject = {name: 'John Doe', bar: 'Biz'...}

Не все строки foo являются ключами bar, bar может иметь больше ключей, чем foo. Обычно в JS я бы реализовал что-то вроде этого:

// This will render a component with value of genObject[ss] or null
 const renderStaticStrings = (staticStrings) => (genObject) => {
    return staticStrings.map((ss) => {
      return genObject.hasOwnProperty(ss) ? (
        genObject[ss]
      ) : null;
    });
  };

С Typescript у меня возникли проблемы с утверждением, что объект должен быть универсальным объектом и что массив строк (staticStrings) может содержать ключи объекта. Что я пробовал:

  const renderStaticStrings = <T extends Object, K extends keyof T>(staticStrings: K[]) => (genObject: T) => {
    return staticStrings.map((ss) => {
      return genObject.hasOwnProperty(ss) ? genObject[ss] : null;
    });
  };

реализация:

renderStaticStrings(staticStrings)(completeProfile?.profile)}

Ошибка: Аргумент типа ‘строка []’ не может быть назначен параметру типа ‘(keyof Object) []’. Тип ‘строка’ не может быть назначен типу ‘keyof Object’

Читать:
Интерактивный запуск R из командной строки Windows

Любая идея? Спасибо

Похожие записи

Отправить произвольный JSON в соединение с gorilla websocket

admin

Произошла незаконная операция доступа с отражением

admin

Добавление в массив после message.content discord bot

admin

Как сгенерировать код с помощью генератора кода для определения настраиваемого ресурса

admin

git push не запрашивает пароль при вызове из терминатора вместо консоли

admin

ОШИБКА в несовпадении версии метаданных для модуля для модуля узла angular2-multiselect-dropdown

admin