Kento
NestJSのデコレーターとは?@Controllerや@Injectableの意味と使い方を初心者向け
2025年07月29日
Tips
要約を生成中...
はじめに
今回はデコレーターについてです。@Controller() や @Injectable() など、コードの上に @ がついた記号を見かけたことがある方も多いのではないでしょうか?
そんなデコレーターですが、デコレーターとは何か、どこでどう使うのか、なぜ必要なのかの部分を見ていきましょう!
関連記事をご覧ください!
✅ デコレーターとは?
デコレーター(Decorator)とは、クラスやメソッドなどに“追加の意味や機能”を与えるための記法です。
TypeScriptの機能のひとつで、NestJSではあらゆる場所で使われています。
記号は @ で始まります。
✅ デコレーターの基本例(NestJSの場合)
✅ どうして必要なの?
NestJSでは、**「このクラスは何のためのものか」「この関数はどのリクエストで使われるか」**を明確にする必要があります。
デコレーターを使うことで:
NestJSの内部で自動的に処理を登録・設定できる
開発者が構造をパッと見て理解しやすくなる(宣言的プログラミング)
✅ 実例で見てみよう
① デコレーターなしの関数(ただのJS)
js
function sayHello() {
return 'Hello!';
}
ただの関数です。リクエストもルートも関係ありません。
② デコレーターを使ったNestJSの関数
ts
@Controller()
export class AppController {
@Get()
sayHello() {
return 'Hello!';
}
}
ここでは:
@Controller()→ このクラスがHTTPルーティングの担当だと宣言@Get()→ この関数が GET / に対応するエンドポイント だと宣言
NestJSがこの情報をもとに、ルーティングを自動的に設定します。
✅ まとめ:デコレーターとは?
僕の感覚的でいうと、TypeScriptのような堅牢なイメージです!
ここの処理がどこの役割をしているのかを、デコレーターで宣言することで可読性のあるコードが書けるイメージです。


