見出し画像

TypeScript 入門の記録(34)プロを目指す人のためのTypeScript入門(19)オブジェクトとは

前回のTypeScript入門の記録では、FizzBuzzプログラムを作ってみました。今回は、クラスに由来しないただのオブジェクト(plain object)について学習します。

オブジェクトとは

TypeScriptでは、plain object の出番が大変多いそうです。class と object はセットになっているイメージだったので、どういうことなのか?を理解したいと思います。

オブジェクトは連想配列

TypeScriptのオブジェクトは、いくつかの値をまとめたデータのこと。オブジェクト内のそれぞれの値は、プロパティ名:式で表現します。これは、直感的で理解しやすいです。クラスを定義して、そのオブジェクトとして値を設定するのではなく、いきなりオブジェクトとして値が定義できるのは便利ですね。下図のconsole.logの例のように、オブジェクトの中身の値を得ることをプロパティアクセスと呼びます。プロパティアクセスは直感的で、すんなり頭に入ります。

object内のそれぞれの値は「プロパティ名:式」で

オブジェクトリテラル

オブジェクトリテラルは、正式には「オブジェクト初期化子」と呼ばれる式の一種です。const obj = { プロパティ名:式, プロパティ名:式,…}が基本構文です。各プロパティの区切りは','で、最後のプロパティにも区切り','をつけることができます。私は、最後にも','をつける方が好みです。最後の要素にも','をつけると、要素を追加した際に前の要素の最後に','を追加するという差分が発生しないので、バージョン管理システム的に余分な差分が発生しないというメリットがあるそうです。
プロパティ名と変数名が同じ場合は、プロパティ名:変数名と書くところを、プロパティ名だけ書く省略記法が使えます。便利~

プロパティ名と変数名が同じ場合は省略記法が使える

プロパティ名の指定方法いろいろ

プロパティ名にユニコード文字が使えるのは他のプログラミング言語にもあるので驚きませんでしたが、プロパティ名に文字列リテラルや数値リテラルが使えるのは、自由すぎる~~~!そして更に、計算された動的なプロパティ名もあるなんて!

文字列リテラル、数値リテラル、計算されたプロパティ名

ああ、前にTwitterのTypeScriptコミュニティで、オブジェクトのプロパティ名を動的に設定したいみたいな話題があって、ちんぷんかんぷんだったのですが、こういうことだったんですね。前提知識がないと、さっぱりわからない。
今日は、ここで時間切れ。続きは、また次の機会にやります。

この記事が気に入ったらサポートをしてみませんか?