Lab 08: Dependency Injection
Step 1: Environment Setup
docker run -it --rm node:20-alpine sh
npm install -g typescript ts-node
mkdir lab08 && cd lab08
npm init -y
npm install tsyringe reflect-metadata
echo '{
"compilerOptions": {
"module": "commonjs",
"target": "ES2020",
"strict": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"esModuleInterop": true
}
}' > tsconfig.jsonStep 2: Basic @injectable and Container
Step 3: Interface Tokens for Abstraction
Step 4: @singleton Decorator
Step 5: Value and Factory Registration
Step 6: Child Containers and Scoped Injection
Step 7: Testing with Mock Container
Step 8: Capstone — Full DI Application
Summary
Concept
Decorator/API
Use Case
Last updated
