タグ

TypeScriptに関するhkjのブックマーク (6)

  • TypeScriptで知ってコードの安全性が上がったtips集

    TypeScriptを用いた開発では、その型システムを活かしてランタイムエラーを事前に防いだり、実装漏れを防いだりとコードの安全性の向上を図ることができます。 記事では、個人的に知ったおかげでコードの安全性が増した!と感じたtipsをまとめました。 ※ なお、linterを用いたコードの安全性向上も非常に有効ですが、この記事では主にTypeScriptの型システムに焦点を当てています。 tips集 配列周りのtips まずは配列を扱う際に役立つ、tipsを紹介します。 配列からUnion型を作成する ↓のように(typeof array)[number]で配列の全要素を持つUnion型を作成できます。 const fruits = ["apple", "banana", "lemon"] as const; type Fruit = (typeof fruits)[number]; //

    TypeScriptで知ってコードの安全性が上がったtips集
  • ナメやがってこの型ァ!!超イラつくぜぇ~~~~~ッ!!

    const colors = ["赤","青"] as const; type Colors = typeof colors[number]; //"赤" | "青" typeof colors[number]・・・ってよォ~~~~~ typeofはわかる。スゲーよくわかる TypeScritの世界では、typeofで変数から型を作れるんだよなァ だがnumberってのはどういう事だああ~~~~っ!? 配列にnumberを渡せるかっつーのよ───────ッ!! ナメやがってこの型ァ!! 超イラつくぜぇ~~~~ッ!! 解説 これはよォ 「Lookup Type」ってやつらしいぜぇ たとえばよォ 👇みたいに書くとPerson型からプロパティの型を取り出せるよなァ~?? type Person = { name: string, age: number } type name = Person

    ナメやがってこの型ァ!!超イラつくぜぇ~~~~~ッ!!
  • TypeScript+Jestでテストを書くときに型安全にモックする方法を教えてほしかった | みどりのさるのエンジニア

    この記事は タイムリープTypeScriptTypeScript始めたてのあの頃に知っておきたかったこと〜 5日目の記事です。 はじめに 自分がTypeScriptを書き始めた頃に苦労したのが、Jestでテストを書くときのモックの型をどう書けば良いか分からないことでした。 調べても型の指定方法が分からず、泣く泣く as any でコンパイラーを黙らせて、補完が効かなくなりモヤモヤしながらテストコードを書いていました。 TypeScriptで型を妥協してテストコードを書いていた時は次のような弊害もあったので、どう型安全にテストコードを書けば良いのか非常に知りたかったです。 補完が効かなくなるのでコーディングが面倒になる プロパティをタイポした事に気づかずに、テストが失敗しても失敗している原因に気付けず疲弊する もくじ モジュールモックの型指定 関数モックの型指定 スパイモックの型指定 モ

    TypeScript+Jestでテストを書くときに型安全にモックする方法を教えてほしかった | みどりのさるのエンジニア
  • 【Vue3+TypeScript】v-onイベントハンドラの引数のキャスト | TekRog

    Vue.js3において、v-onディレクティブで紐づけた「イベントハンドラ」や「トランジションフック」の引数から要素ノードのプロパティを参照、アクセスしようとするとTypeScriptではエラーが出てしまいます。そこで引数のダウンキャストが必要なのですが、「イベントハンドラ」と「トランジションフック」でそれぞれキャストの方法が違うので順番に説明します。 キャストの方法 先にキャストの方法を示し、順次解説します。 結論を言うと、次のコードのようになります。 //@clickや@mouseenterなどのイベントハンドラ const onclick = (e: Event) => { const target = e.target as HTMLElement //もしくはHTMLElementのサブクラス console.log(target.id) //要素ノードにアクセス } //@be

    【Vue3+TypeScript】v-onイベントハンドラの引数のキャスト | TekRog
  • TypeScriptでEventの取り扱いがめんどくさ過ぎる。。。

    はじめに Nuxt.js + TypeScriptを今試し中なのだけど、TypeScriptでのイベントの取り扱いが面倒なので、とりあえずStructural Subtypingを適用してみました。 今のところ問題なさそうなんだけど、軽く探して見た限りだとあまり類似のアプローチ無いし悪手なのかな? てか、FWとか一般的なライブラリで対応してるけど見つけれてないだけの気がしてならない。。。 TL;DR Event型を取り扱うときはtargetの型が不明なのでコンパイルエラーになる事がある event: { target: HTMLButtonElement }型を指定するのが一番手っ取り早い 求む、もっと手軽な対応方法 TypeScriptでのEvent型の取り扱いの罠 クリックイベントが発生したHTMLのノードに対して作業したい事は良くあるかと思います。 例えば下記のように 「クリックした

    TypeScriptでEventの取り扱いがめんどくさ過ぎる。。。
  • TypeScript のエラーハンドリングを考える - Qiita

    何番煎じかわかりませんが TypeScript でのエラーハンドリングについて考えてみたいと思います。 この記事で扱う TypeScript のバージョンは 4.3 です。 エラーを型安全に扱いたい TypeScript を書いていれば誰もが一度はぶつかる問題ではないでしょうか。 TypeScript では catch した例外は any として扱われます。 これは JavaScript の仕様上どんな値でも throw できてしまうため仕方のないことなのですが、せっかく型安全性を手に入れるために TypeScript を使っているのに any をハンドリングしなければならないのは苦痛です。 次のように例外を throw し得る関数 foo() のエラーハンドリングを考えてみます。 e は any なので、プロパティにアクセスしようにも危険性が伴います。 そこで型アノテーションを使用して

    TypeScript のエラーハンドリングを考える - Qiita
  • 1