Day9 #100DaysOfCode
Day9
今日はTypeScript + Reduxにしっかりチャレンジしてた。
なんだかんだでチャレンジしてはめんどくさくなって(おい)やめたりみたいなことを繰り返して来たのでちゃんと本腰入れてやってます。
てか、これ1年前とやってることがまるで変わってないんですよね。ほんと1年間無駄に使ってしまったなと後悔。マジで誰か殺してくれ。
Redux本体については日本語も英語も解説記事が死ぬほどあるので、それを読んだりすると雰囲気が掴めるので、今のところはたいした問題にはぶち当たっていないのですが、redux-thunkの方はややつまづいてしまった。
いろいろ試してなんとか掴んだ気がする。TypeScriptやっててわけわからなくなったら、型定義ファイルを見るのが一番いいなと思った。
たとえば、redux-thunkの型定義ファイルの一部を抜き出すとこんな感じ
export type ThunkAction<R, S, E, A extends Action> = ( dispatch: ThunkDispatch<S, E, A>, getState: () => S, extraArgument: E ) => R;
ところで、extraArgument
とかいう知らん単語が出て来てなんだろうと思ったら、公式のREADMEに書いてた。
Since 2.1.0, Redux Thunk supports injecting a custom argument using the withExtraArgument function:
らしい。
const store = createStore( reducer, applyMiddleware(thunk.withExtraArgument(api)) ) // later function fetchUser(id) { return (dispatch, getState, api) => { // you can use api here } }
こんな感じでAPI渡したりできるっぽい。なにこれ素敵やん。
これ使ってみようと思ふ。
雑談
今日はむさしの森珈琲にいった。イケイケ空間。