最初から結論
カスタムフック自体に型をつけてなかったから、定義したカスタムフックを別のコンポーネントでimportした時に型関連のエラーが出てた
-> カスタムフック自体に戻り値の型をつければ万事解決!!
// この部分
type funcs = {
setTimer: () => void;
resetTimer: () => void;
};
type Timer = [number, funcs];
export const useTimer = (): Timer => {
const [time, setTime] = useState<number>(0);
const setTimer = (): void => {};
const resetTimer = (): void => {};
// (中略)
return [ time, { setTimer, resetTimer } ];
}
まとめ
考えてみれば当然って感じですね。
コンポーネント・関数の型定義は、暗黙的な型変換に頼ることが多かったので気付くのが遅れちゃいました…
もし、僕と同じく暗黙的な型変換をよく使う人がいたらこんなエラーがあったことを頭の片隅に入れてもらえたら幸いです。