suin

Results 126 comments of suin

書きたいことメモ コールバック関数は、関数に引数として渡される関数で、この渡された関数は渡した先で実行されます。 コールバック関数という言語機能や構文がJavaScriptに設けられているわけではありません。JavaScriptには、2つの仕様「関数は引数になれる」「引数として受け取った関数は呼び出せる」があります。この仕様を応用したデザインパターンがコールバック関数です。 例: コールバック関数をコールバック関数を受け取る関数に渡すサンプルコード 同期型のコールバック関数 - 目的: 処理の一部を移譲する - 例: Array.find 非同期型のコールバック関数 - 目的: JavaScriptでブロッキングが発生しないようにするため - 例、setTimeout、fetchなど Q&A1「同期型のコールバック関数に非同期関数も渡せる?」「渡しても問題ない?」 Q&A2「コールバック関数を受け取る関数を作るとき、その引数の型定義どう書く?」

まっさらなmacOS Catalinaを用意してHomebrewのインストールからやってみる。

この部分を実行した。 まっさらなmacだと、`/usr/local/opt/node@16/bin`にパスが通っていないので、`node -v`はcommand not foundになる。 今回の調査対象とは関係ないが、パスを通すところをちゃんと手順に加えたほうがよさげ。

ちなみに、パスを通してもzshを再起動しない限りnodeコマンドは見つからない。 ![2022-03-11 20 07のイメージ](https://user-images.githubusercontent.com/855338/157855793-1096c157-1e3c-41cc-abe7-ede14fe5a1b1.jpg)

nodeのパスを通すとnode, npmも実行できた。npm install -g typescriptで入れたtscにもパスが通っていた。 ![2022-03-11 20 09のイメージ](https://user-images.githubusercontent.com/855338/157856223-6a2a24bf-73d5-4d5b-ba94-9dad7c6cba24.jpg)

次のチュートリアルの部分を実施した。 問題なく実施できた。 ![2022-03-11 20 14のイメージ](https://user-images.githubusercontent.com/855338/157856837-3ac985db-ee85-4f12-8d39-dd0a33d7cee8.jpg)

まだちゃんとキャッチアップできてませんが、書いても良さそうです!

ありがとうございます! たしかに「作って学ぶ」の章で触れてはいるけど、体系的にはあつかってないので「読んで学ぶ」で文法などを解説するのは必要そう

「instanceofがうまく行かない場合もある」といった注意喚起にトーンを下げたほうが良いかもしれません。 なんでもかんでも厳密にチェックとなると、判別可能なユニオンはサボりになってしまいます。 どこまで厳密にチェックするかは、リスクアセスメント次第で、どこまで実行時の安全性と工数のトレードオフするかに委ねられる部分だと思いました。

一概に`Partial`に問題があるというよりは、オブジェクトの不変条件をどう考えるかといった設計上の意思決定によって`Partial`を使うべきかどうかを判断するものと考えられます。 いまのところオブジェクトの設計までは本書では踏み込んでないのと、あまり一般的な意見としては聞いたことがない主張なので、取り上げない方向性が現状は強いです。