Dev Study
TypeScript コース

62. コンストラクタ引数プロパティ — 宣言と代入の省略記法

コンストラクタの引数に private などの修飾子を付けると、その引数が自動的に同名のプロパティとして宣言され、値の代入まで行われます。constructor(private repo: UserRepository) {} と書くだけで、プロパティ宣言・引数の受け取り・this.repo = repo の3つが1行にまとまります。

実務では、クラスが依存する別のクラスを外から受け取る「依存性の注入(DI)」の場面で多用します。特に NestJS では constructor(private readonly userService: UserService) {} という形が定番で、コントローラやサービスを書くたびに毎日この記法を目にすることになります。

つまずきポイントは、修飾子を何も付けないとただの引数のままでプロパティにはならないことです。public・private・protected・readonly のいずれかを付けたときだけ省略記法が働く、と覚えましょう。

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

TypeScript
サンプルコードで身につける(5本) →

学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。

公式ドキュメントで詳しく ↗