TypeScript. Не получается присвоить тип переменной

  const createObligation = useCallback(
    data => {
      setIsShowNewObligation(false);
      dispatch(createObligationThunk(data));
    },
    [dispatch]
  );

  const updateObligation = useCallback(
    (data): void => {
      setInEdit(false);
      dispatch(updateObligationThunk(data));
    },
    [dispatch]
  );

        const onSubmit: any = item._isNew ? createObligation : updateObligation;
        const onCancel: any = item._isNew ? () => setIsShowNewObligation(false) : () => setInEdit(false);

Мне нужно прописать тип для двух констант. Если я пишу const onSubmit: void = ... , то появляется ошибка :

TS2322: Type '(data: any) => void' is not assignable to type 'void'.

Что я делаю не так?


Ответы (1 шт):

Автор решения: Grundy

В ошибке указан тип, который имеет присваиваемое значение

(data: any) => void

именно его и надо было указывать для переменной:

const onSubmit:  (data: any) => void = ... 

Сейчас же идет попытка объявить переменную с типом void.

→ Ссылка