Привязка универсального c к функции - PullRequest
1 голос
/ 14 марта 2020

Скажем, у меня есть следующая функция (и интерфейс):

interface IDocument {
  id: string;
  data: () => any;
}

function addId<T>(doc: IDocument) {
  return { id: doc.id, ...(doc.data() as T) };
}

И затем я хочу передать эту функцию с установленным значением c generi в качестве обратного вызова для map.

interface IClient {
  name: string;
}

myDataArray.map(addId);

Мой вопрос: Есть ли способ сообщить TypeScript, что у вызванного addId T установлено значение IClient?

Я пытался:

myDataArray.map(addId<IClient>);

Но получил следующее:

Expected 1 arguments, but got 0.ts(2554)
add-id.ts(2, 3): An argument for 'doc' was not provided.

1 Ответ

3 голосов
/ 14 марта 2020

Этот?

myDataArray.map(item => addId<IClient>(item));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...