この記事ではTypeScriptのオブジェクト型について解説していきます。
TypeScriptのオブジェクト型定義の理解を深め、実際の開発に活かすことが目指せますよ!
この章ではこの記事を読むことで得られる具体的な内容についてお話します。
では、まずは基本的なオブジェクト型定義から見ていきましょう!
TypeScriptでのオブジェクト型の定義を紹介します。
type MyObject = {
name: string,
age: number
};
上記のコードでは MyObject
という型を定義しています。name
は文字列型、age
は数値型と指定されていますね。
このようにTypeScriptでは独自のオブジェクト型を作成することができます!
場合によっては、あるプロパティがオブジェクトに存在するかどうか不明なこともありますよね?
その時に役立つのが「オプショナルなプロパティ」です。
さっそくコードを見てみましょう!
type MyObject = {
name: string,
age: number,
hobby?: string
};
今度の MyObject
には hobby
という新しいプロパティが追加されました。
しかし、プロパティ名の後ろに ?
があることに気づきましたか?
これがオプショナルなプロパティで、このオブジェクトには hobby
がなくても良いということを示しています。
オブジェクトの中にさらにオブジェクトが存在する場合、ネストされたオブジェクト型 と呼びます。
こうした複雑な型もTypeScriptでは簡単に扱うことができます。
具体的なコードを見てみましょう。
type MyObject = {
name: string,
age: number,
address: {
city: string,
zip: string
}
};
address
プロパティの値はさらにオブジェクトとして city
と zip
を持っています。
これがネストされたオブジェクト型の一例です!
TypeScriptではオブジェクト型を定義する際にtypeとinterfaceのどちらを使用するか選択することができます。
基本的にはどちらも同じ役割を果たしますが、それぞれに一部特性が存在します。
その違いを理解するためのコードを見てみましょう。
type TypeName = {
name: string
};
interface InterfaceName {
name: string
};
どちらも name
プロパティを持つオブジェクト型を定義していますが、interfaceは拡張が可能な点で特徴があります。
interface InterfaceName {
age: number
};
このように同じ名前で再定義すると InterfaceName
は name
と age
の両方のプロパティを持つように拡張されます。
この特性はinterfaceにしかないので、オブジェクト型の拡張が必要な場合はこちらを選びましょう!
以上で、TypeScriptのオブジェクト型についての基本的な説明は終わりです。
ここまで読んでいただきありがとうございました!
TypeScriptの短絡評価の使い方「&&」「||」「??」の解説
TypeScriptのタイマー関数setTimeoutとsetIntervalの使い方
TypeScriptの多次元配列の使い方についてわかりやすく解説
TypeScriptでのタプルの使い方と実践テクニックを解説
TypeScriptのimport typeをわかりやすく解説
TypeScriptの配列やオブジェクトのソート完全ガイド
TypeScriptコメントアウトの使い方 完全ガイド
TypeScriptのオブジェクトとプロパティの存在チェック完全ガイド
TypeScriptで即時関数を使う方法を解説!基本から実践的な使い方まで