NestJSのデコレーターとは?@Controllerや@Injectableの意味と使い方を初心者向け

NestJSのデコレーターとは?@Controllerや@Injectableの意味と使い方を初心者向け

投稿日: 2025年07月29日

Tips
要約
  • デコレーターは、クラスやメソッドに追加の意味や機能を与えるためのTypeScriptの記法であり、NestJSでは広く使われています。
  • デコレーターを使用することで、クラスや関数の役割を明確にし、NestJSが自動的に処理を設定することが可能になります。
  • これにより、可読性のあるコードが書けるようになり、開発者が構造を瞬時に理解しやすくなります。
音声で記事を再生

はじめに

今回はデコレーターについてです。
@Controller()@Injectable() など、コードの上に @ がついた記号を見かけたことがある方も多いのではないでしょうか?
そんなデコレーターですが、デコレーターとは何か、どこでどう使うのか、なぜ必要なのかの部分を見ていきましょう!


関連記事をご覧ください!


✅ デコレーターとは?

デコレーター(Decorator)とは、クラスやメソッドなどに“追加の意味や機能”を与えるための記法です。
TypeScriptの機能のひとつで、NestJSではあらゆる場所で使われています。
記号は @ で始まります。

✅ デコレーターの基本例(NestJSの場合)

NestJSのデコレーターとは?@Controllerや@Injectableの意味と使い方を初心者向け|ShiftBブログ

✅ どうして必要なの?

NestJSでは、**「このクラスは何のためのものか」この関数はどのリクエストで使われるか」**を明確にする必要があります。

デコレーターを使うことで:

  • NestJSの内部で自動的に処理を登録・設定できる

  • 開発者が構造をパッと見て理解しやすくなる(宣言的プログラミング)

✅ 実例で見てみよう

① デコレーターなしの関数(ただのJS)

js

function sayHello() {
  return 'Hello!';
}

ただの関数です。リクエストもルートも関係ありません。


② デコレーターを使ったNestJSの関数

ts

@Controller()
export class AppController {
  @Get()
  sayHello() {
    return 'Hello!';
  }
}

ここでは:

  • @Controller() → このクラスがHTTPルーティングの担当だと宣言

  • @Get() → この関数が GET / に対応するエンドポイント だと宣言

NestJSがこの情報をもとに、ルーティングを自動的に設定します。

✅ まとめ:デコレーターとは?

NestJSのデコレーターとは?@Controllerや@Injectableの意味と使い方を初心者向け|ShiftBブログ

僕の感覚的でいうと、TypeScriptのような堅牢なイメージです!
ここの処理がどこの役割をしているのかを、デコレーターで宣言することで可読性のあるコードが書けるイメージです。

シェア!

Threads
Loading...
記事一覧に戻る
Threads
0