soon530 / nestjs-study

來學一下nestjs吧!
0 stars 0 forks source link

使用DTO #9

Open soon530 opened 2 years ago

soon530 commented 2 years ago

什麼是 DTO?它的全名是 資料傳輸物件 (Data Transfer Object),其用途廣泛,通常用於過濾、格式化資料,它只負責存放要傳遞的資訊,故 只有唯讀屬性,沒有任何方法。定義 DTO 之後,就不必一直翻文件查到底參數格式為何,可以很清楚了解傳入 / 傳出的參數內容,在 Nest 的世界裡,甚至可以基於 DTO 的格式來設置驗證器,進而大幅降低維護成本。

既然是定義格式,那麼就有兩種選擇:

TypeScript 的 interface 標準 JavaScript 支援的 class 基本上會建議大家採用 class 的形式來建立 DTO,原因是 interface 在編譯成 JavaScript 就會被刪除,而 class 會保留,這對部分功能是有影響的,所以 官方也推薦大家採用 class。