TypeScript
-
TypeScriptを使うとはどういうことか
-
意義
-
型定義をしながら実装していくことでテスト駆動開発のようになる
-
コンピュータにも読めるコメント
を定義しているようなものなのかもしれない
-
TypeScriptでわざわざ型情報を付与するのは、コード補完による素早いコーディングや、コーディング・コンパイル時点での問題発見による
工数削減
のため
-
型定義で
工数が余計にかかる
なら、コードの設計が悪い
可能性が高い
-
読むときのコンテキスト次第で設計が変わる
-
型付けがシンプル
になるように設計を見直していく
べき
-
デメリット
-
型情報の作り込みは読みにくいコードに直結する
-
書いているときには良いが、数日後にいじるのが難しいコードになる
-
凝った正規表現に近いものが有る
-
気持ち
-
型定義も普通のプログラムも同じ
-
分割したりコメントを書いたりしてわかりやすくしても何も問題ない
-
正直三項演算子はバッドノウハウだと思ってたんだけど、型定義だと文句を言われないのが謎
-
今まで持っていた型の定義/概念をもっと広げて考えないといけない
-
型付けは入力と出力のテストコードを先に書くようなもの
-
ドキュメントに書くならコードに書いちゃったほうが確実
-
後から型をつけるのは大変だけど、コードを作るときには結果的に型を考えているので付けちゃう
-
TypeScriptのチェーンを入れたくないという意見に対して
-
ブラウザで動作する
Javascriptを直接書かなく
なってきている
-
フロントエンド開発の難しい点は、コードを書くのよりも環境構築の難易度が高い
-
コードを書く技術よりも
環境構築に必要なスキルは数倍難易度が高い
-
filterはtype推論しないけどflatmapはしてくれる
-
.flatMap(el => el[prop] ?? [])
と書けばNonNullableで推測してくれる
-
filter
でel!==undefined
とか書いてもダメ
-
indexedにしないと余剰プロパティの型チェックがされないが、static+indexedにするとされる
-
optionalとundefinedは違うのか…
-
index sigunatureとinの違い
-
type A = { [key: string]: string }
-
type B = { [key in string]: string }