人民の人民による人民のための型とテスト
まぼろしのJS勉強会 #5 「型とテスト」
木村 哲朗

この資料の役割

  • ウェブフロントエンド、JSの話
  • 考え方を整理する
  • なんのために型やテストを書くのか?
  • どのように型やテストを書くのか?
  • 意識の高低についてではなく意識の持って行き方を示す

なんのための型やテストか? 🤔

安全性や動作確認のため?

😏 それらは副作用と言って良い

仕様を明示するために書く ✍️

👉 つまりドキュメンテーション

だから…

  • 型は実装に影響しない定義だし
  • テストファイルは *.spec.ts とかにする

かつてはコメントに書いた

牧歌的な時代の JSDoc 
/**
 * 合計値を返す
 *
 * @param {...number} values 合計を求める数値
 * @returns {number} `values` の合計値
 */
function sum(...values) {
  return values.reduce((a, b) => a + b, 0)
}

人はコメントを忖度しない

values に必ず数値が渡されると誰が約束してくれる?
/**
 * @param {...number} values 合計を求める数値
 */

合計値が返されることのエビデンスは?
/**
 * @returns {number} `values` の合計値
 */