นอกเหนือจากคลาส @Injectable() แบบธรรมดา NestJS ยังรองรับ custom provider ซึ่งเป็นวิธีที่ยืดหยุ่นในการกำหนดว่าจะ inject อะไรเข้าไป โดยใช้ injection token สิ่งนี้ทำให้คุณ inject ค่าต่างๆ, กำหนดวิธีสร้าง instance, สลับ implementation และ inject dependency ที่ไม่ใช่คลาสได้
custom provider สี่ประเภท
({
: [
{ : , : },
{ : , : { : , : } },
{
: ,
: (: ) => {
(config.());
},
: [],
},
{ : , : },
],
})
{}
