@saber2pr/ioc
v0.0.7
Published
a simple Injector for ioc
Downloads
5
Maintainers
Readme
# from npm
npm install @saber2pr/ioc
# from github
git clone https://github.com/Saber2pr/saber-ioc.git
关于反射的实现 @saber2pr/reflect
Feature
@Injectable()
class Service {
public getUser() {
return 'saber!'
}
}
class Controller {
public constructor(@Inject('Service') private Service: Service) {}
// @InjectProp() private Service: Service
public test() {
console.log(this.Service.getUser())
}
}
const app = Injector(Controller)
app.test() // 'saber!'
API
@Injectable(id?) 注解一个类作为元数据依赖,若没有提供 id 参数,则默认注册 id 为类名
注意:
请确保 id 是全局唯一的!@Inject(id) 注解一个依赖到目标类中(从注解参数)
如果依赖类型是 Interface,请务必提供 Inject 注解。
@InjectProp(id) 注解一个依赖到目标类中(从属性注解)
@Singleton 注册一个类为单例
@Static 注册一个类为静态类
你可能已经发现这和@Singleton可能是一样的,你是对的
Injector 执行依赖树 build,自动注入实例
注意保证依赖在注入之前已经声明
start
npm install
npm start
npm run build
npm test
develope and test
you should write ts in /src
you should make test in /src/test
Author
saber2pr
License
MIT