hubプログラミングやライフスタイルについて書き綴っています2024-02-24Typescript学習〜『プロを目指す人のためのTypeScript入門』を読んでみて第3章〜はじめに業務で使うことのあるTypeScriptを本格的に勉強し始めたところです。現在絶賛『プロを目指す人のためのTypeScript入門』を読み進めており、その際のメモを備忘録として残しております。第3章は「オブジェクトの基本とオブジェクトの型」について。オブジェクトとはTypeScriptのオブジェクトは、連想配列ですと。ハッシュや辞書などとも呼ばれますが、ここでは「いくつかの値をまとめたデータ」としておきます。この世界は先の章で扱った文字列、数値などのプリミティブ型だけで表現できるほど単純には出来ていませんよね。関連するデータは多様に存在します。これら複数のデータをまとめてユーザーを表現したいときにオブジェクトという単位でまとめることが必要になります。※とはいえ実運用を加味すると「ユーザー」というオブジェクトだけでシンプルに運用するには限界が訪れて、「プロフィール」オブジェクトなど更に階層構造が生まれていくと思います。オブジェクトの省略記法オブジェクトリテラルには、省略記法があります。以下のオブジェクトの代入を例にあげます。最終的にユーザーの姓名を足して、ユーザー名として出力しています。${user_name}`)今回取り上げる「省略記法」というのは、プロパティ名と変数名が同一の場合に活用できます。用いられていますが、userオブジェクト内でも同様のプロパティが出現しています。その場合、コーディングの効率を上げるために、以下のように書き換えることが出来ます。それぞれ対応する変数名だけで表現できるようになりました。コンパクトな記述ができるため、利用できる際にはどんどん活用していけると良いですね。スプレッド構文オブジェクトリテラル中ではスプレッド構文と呼ばれる別オブジェクトからプロパティをコピーできる構文を利用できます。既存のオブジェクトを拡張した別オブジェクトを作りたいときに有効に活用できます。}注意点として、プロパティをコピーしているため、コピー元のオブジェクト側のプロパティ変更は反映されません。コピー元のネストしたプロパティに関しては依然として同一オブジェクトとみなされます。オブジェクトのコピーと同一性は正しく理解しないと思わぬ破壊的変更を生む可能性があるので注意しましょう。返るtype文TypeScript特有でJavaScriptには存在しない文としてtype文があります。これは型名を宣言をする構文です。型;まずtype文でFooBarObjという型名を作成します。続けて行う変数宣言では作成したFooBarObj型でオブジェクトを定義します。それを表したのが以下のコードです。parameters)型定義の際に、パラメータを伴って型定義の幅を増やしてくれるのが「型引数」です。型引数を持つ型はジェネリック型とも呼ばれます。宣言すると以下のようになります。Child;}配列型プログラミングをやっていれば頻出の配列(Array)に対しても型の構文が存在しています。型の値を要素に持つ配列を表現します。以下の例だとarr1はOKですが、arr2はコンパイルエラーになります。100];まとめ第3章も内容は「オブジェクトとは?」についてでした。読者になるもっと読むコメントを書く2023-02-05プロを目指す人のためのTypeScript入門を読んでみて〜第五章〜はじめに業務で使うことのあるTypeScriptを本格的に勉強し始めたところです。現在絶賛『プロを目指す人のためのTypeScript入門』を読み進めており、その際のメモを備忘録として残しております。第五章は「TypeScriptのクラス」を扱っています。書籍はこちら型引数を持つクラスクラスも型引数を持てます。これまで登場したのは「型そのもの」や「関数」が型引数を持つケース。「クラスの型引数」は両方を合体させたような性質を持つと。イメージを付けるためにコードを参照します。john.data;特徴としてはクラス宣言でUserと型引数リストが書かれています。クラス名の後のTには方が入ります。結果、UserやUserなどのインスタンスが生成可能になります。コンストラクタの呼び出し時に型引数を指定できます。対して型の指定ができるようになりました。ちなみにdata2の方では型の指定がありません。型であることが推論されます。クラスの継承TypeScriptでも継承が出てきましたね。継承を表現する先程と同様にソースコードで具体イメージを掴んでみましょう。クラスが宣言されています。クラスの全機能を備えます。多言語と同様に子クラスでは親機能を上書きする「オーバーライド」も可能です。例外処理5章ではTypeScriptでの例外処理にも言及されていました。エラーの基本としてはエラーを発生させる「throw文」が登場します。構文があり、式部分でErrorオブジェクトを指定します。以下のような例外発生方法があります。error;}この場合「エラーを発生させました」は実行されずエラーのthrow時点で処理は中断されます。