Интерфейс Typescript для определения генератора - PullRequest
1 голос
/ 10 мая 2019

У меня есть код, который выглядит следующим образом:

const saga =  function* (action) {
        yield put({
            type: actions.SUCCESS,
            payload: action.payload
        });
    };


const sagaWatcher =  createDefaultSagaWatcher(actions, saga); 

Что я конвертирую в TypeScript.

Мне нужно создать интерфейс для функции генератора, чтобы я мог добавить проверку типа для функции createDefaultSagaWatcher. Как мне это сделать?

Я пытался сделать что-то вроде этого:

interface ReduxSaga {
    (action: ReduxAction)* : any; 
}

но этот синтаксис неверен.

1 Ответ

0 голосов
/ 10 мая 2019

Как и модификатор async, * - это деталь реализации. Важной частью для вызывающей функции является то, что функция возвращает что-то, что может быть повторено, и то, как эта итерация реализована, не должно иметь значения для вызывающей стороны. Так как вы хотите итерацию чтобы вернуть все, что вы можете использовать IterableIterator<any>

interface ReduxSaga {
    (action: ReduxAction): IterableIterator<any>; 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...