TypeScript ジェネリクスと型ガードの組み合わせ
覚書です。
const createAction = <I extends Q, Q, O>( input: Q, guard: (x: Q) => x is I, converter: (_: I) => ...
JavaScript 小数点の注意点
以下は当然ですがfalseです。
console.log(2.000000000000001 === 2)以下はtrueになります。
console.log(2.0000000000000001 === 2)I ...
JavaScript 階層構造のデータの加工
以下のような階層構造のデータがある。
const data = , }, { name: 'AAA2', flag: false, children: , } ], flag: false, }];すべての ...
JavaScript 入力値のバリデーション的なもの
入力された値をバリデーションする処理を自分で書いてみたらどんな感じになるかやってみました。
型のチェックがなかったり、穴がいろいろありますが、イメージしていたのはこんな感じです。
const notEmpty = e ...
rsyncでコピー元にないファイルを削除したいときは –delete オプション
rsync でファイルを同期する時に、コピー元にないファイルをコピー先から削除したい場合は –delete を指定します。
rsync -avz --delete <src> <dist>
JavaScript での DOM 操作を関数型プログラミングっぽく書いてみる
以下のようなHTMLがあります。
<div id="parent"> <div name="hoge">aaa</div> <div name=& ...
Chromeでより詳しいネットワークのログを取得する方法
Chromeの開発ツールでは、Network タブで通信の情報を得られますが、より詳しいログを取得する場合はブラウザで chrome://net-export/を開きます。
このような画面が開くので、Start Loggi ...
jQueryのonに名前空間をつけてみる
jQueryのonの第一引数にはclickなどのイベントを指定しますが、以下のようにclickに続けて名前空間をつけることができます。
$(document).on('click.hoge', '#but ...
関数型プログラミング サンク(thunk)とは
サンク(thunk)とは引数がない関数で値をラッピングしたものです。
const hoge => (_) => { return 1;}JavaScriptでは関数の引数に関数を渡すことができるので、上記のサン ...
JavaScript switch文でできないこと
JavaScriptのswitch文では、各条件でパラメータを受け取って処理することができない。
それに対応するコード。
//switchのラベルに該当する。文字列ではなく関数にすることがミソconst male = ...