第12章. タイプ別開発戦略
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
これまでのレシピはすべて、TypeScriptプログラミング言語とその型システムの特定の側面を扱ってきた。第2章と第3章では基本的な型の効果的な使い方について、第4章ではジェネリクスによってコードの再利用性を高め、第5章では条件付き型、第6章では文字列テンプレートリテラル型、第7章ではバリアド・タプル型を使って非常にデリケートな状況のために高度な型を作ることを学んだ。
第8章ではヘルパー型のコレクションを確立し、第9章では標準ライブラリの制限を回避した。第10章では言語拡張としてのJSXの扱い方を学び、第11章ではクラスをいつどのように使うかを学んだ。どのレシピも、各アプローチの長所と短所を詳細に論じており、あらゆる状況に対して正しく判断し、より良い型、より堅牢性の高いプログラミング、安定した開発フローを作成するためのより良いツールを提供している。
それはたくさんある!しかし、まだ1つ足りないものがある。それは、すべてをまとめる最後のピース、つまり、新しいタイプの挑戦にどうアプローチするかということだ。何から始めればいいのか?何から始めればいいのか?
これらの質問に対する答えが、この章の内容を構成している。ここでは、メンテナンスの少ない型の概念について学ぶ。まずはシンプルな型から始めて、徐々に洗練され、より強力になっていくプロセスを探る。TypeScriptプレイグラウンドの秘密の機能や、検証を容易にするライブラリの扱い方についても学ぶ。困難な決断を下すためのガイドを発見し、TypeScriptの旅で必ず遭遇する、最も一般的でありながら克服が困難な型エラーの回避策を学ぶ。
本書の残りの部分が、あなたを初心者から見習いへと導いたとしたら、次のレシピはあなたをエキスパートへと導くだろう。最終章へようこそ。
12.1 ライティング・ローメンテナンス・タイプ
問題
モデルを変更するたびに、コードベース全体で何十もの型を触る必要がある。それは面倒だし、何かを見逃すことも簡単だ。
解決策
他から型を派生させ、使用法から推測し、メンテナンスの少ない型を作成する。
ディスカッション
本書を通して、私たちは他の型から型を作成することに多くの時間を費やしてきた。すでに存在するものから型を派生させることができるということは、型情報を書いたり適応させたりする時間を減らし、JavaScriptのバグやエラーを修正する時間を増やすことを意味する。
TypeScriptはJavaScriptの上にメタ情報を載せたレイヤーである。私たちのゴールは、JavaScriptを書くことであることに変わりはないが、それをできるだけ堅牢で簡単にすることだ:ツールは生産性を維持するのに役立ち、邪魔にならない。
一般化したTypeScriptの書き方だ:通常のJavaScriptを書き、TypeScriptが余分な情報を必要とする部分には、喜んで余分なアノテーションを追加する。条件付きだが:私は型のメンテナンスに煩わされたくない。それよりも、依存関係や周囲の環境が変わっても自分自身で更新できるような型を作成したい。私はこのアプローチを、メンテナンス性の低い型の作成と呼んでいる。
ローメンテナンス・タイプの作成には3つのプロセスがある:
-
データをモデル化するか、既存のモデルから推測する。
-
派生物(マッピングされた型、パーシャルなど)を定義する。 ...