Я пытаюсь перебрать функции в объекте и заставить их возвращаемый тип выполнить некоторую фильтрацию следующим образом:
export const StorageActions = {
addFile: () => ({ type: 'ADD_FILE' }),
deleteFile: () => {
return () => {
return null;
};
},
};
type StorageActionsTypes = typeof StorageActions;
type ValidFunctions<T> = Pick<T, {
[K in keyof T]: ReturnType<T[K]> extends { type: any } ? K : never;
}[keyof T]>;
type functions = ValidFunctions<StorageActionsTypes>;
приведенный выше код выдаст следующую ошибку:
Тип 'T [K]' не удовлетворяет ограничению '(... args: any []) => any'.

Как описано выше, ReturnType ожидает функцию, это правильно?или я что-то здесь упускаю?
как я могу сказать ReturnType, что я передаю функцию?