Typescript + React - Получить тип переменной из ее типа - PullRequest
0 голосов
/ 07 октября 2019

Новый в Typescript и неуверенный в том, как этого добиться.

Я использую React для создания компонента - таблицы - с использованием этой библиотеки https://devexpress.github.io/devextreme-reactive/react/grid/docs/guides/getting-started/

Скажи, что яУ меня есть служба, которая получает некоторые данные:

const { data, error, loading, refetch } = songService.get(queryOptions);

Я хочу вызвать эту службу в самом компоненте таблицы, однако я не хочу, чтобы она ограничивалась только получением данных из songService. Я хотел бы получить его от любой услуги, которую я передаю в реквизитах - поэтому я думаю: <DXTable serviceFromData="songService" /> или <DXTable serviceFromData="coverService" />

Однако у меня есть 2 вопроса / неопределенности: - Какой тип будет serviceFromData опора будет? Я хотел бы, чтобы это было общим. - Как я могу убедиться, что у моего const queryOptions есть определенный интерфейс, основанный на услуге?

Любая помощь будет оценена.

Спасибо.

1 Ответ

1 голос
/ 07 октября 2019

Я бы создал интерфейс для каждой службы и попросил их расширить общий интерфейс. Отсюда у вас есть два варианта: 1. serviceFromData может принимать тип общего интерфейса, так что он несколько универсален 2. serviceFromData может принимать тип, такой как Service1 | Service2

. Вы можете убедиться, что queryOptionsбыть конкретным интерфейсом, добавив требуемый тип к методу get(), например get(queryOptions:SomeInterface) в ваших классах обслуживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...