Реализация useState
в React составляет
export function useState<S>(initialState: (() => S) | S) {
const dispatcher = resolveDispatcher();
return dispatcher.useState(initialState);
}
Это показывает, что вы действительно можете использовать функцию в качестве параметра, и эта функция должна возвращать тип S
. В вашем случае S
будет undefined
, потому что () => console.log(...)
ничего не возвращает, , хотя вы явно указали его как OoopsFunction
.
Так что, если вы хотите сохранить функцию как состояние через useState
, вам нужно реализовать подход Толле, где функция фактически возвращает функцию, а не undefined
.