技術とかの雑なToday I Learnedメモ

ちょっとずつできるようになってきたこと

メリットを明示することがちょっとずつできてきた気がする

コードレビューでconst date = ref(new Date() as Date)というコードにconst date = ref<Date>(new Date())のほうがいいよというレビューコメントを書いた。

このとき「なぜこっちのほうがいいのか」というのを説明できたのでよかった。

Type Assertion(型アサーション) - TypeScript Deep Dive 日本語版

TypeScript の as って何です?(型アサーションについて) - Qiita

1. 最初に上記のコードを見たときに「refの型定義ってref<T>(initialValue)だよな?と思った
2. ただref(initialValue as T)でもコード上は正しく動くし、アサーションだと何が悪いんだ?と思ったので上記の記事を読んだ
3. アサーションだとコンパイラが指摘しなかったり実行時エラーが起きる可能性がある
4. アサーションが全て悪いというわけではなく適切に使えればいいが、型定義ができる場面でアサーションを使うのはエラーが起こる可能性を少しでも減らすという観点でよくないと思った
5. コメントして同意をもらえて修正してもらえた

たぶん何気ないことだと思うんだけど自分にとってはまだ全然できていないことで、こういうことを少しずつ積み重ねていきたいと思えることだったので、レビューするときやコードを書くときに意識して、自分が説明できるようになるようになりたい。