데코레이터 없이 의존성 주입
6229 단어 webdevbeginnersjavascript
그것은
Pumpa
라고 불리며 약 2KB이며 이것이 작동하는 방식입니다.class A {
static inject=[B]
constructor(public b:B){}
}
class B {}
const container = new Pumpa()
container.bindClass(A,A)
container.bindClass(B,B)
const instanceA = container.resolve<A>(A)
함수 팩토리를 등록할 수도 있습니다.
class B{}
function myFactory(b: B) {
return function resolvedFunction() {
// do something with b
}
}
myFactory.inject = [B]
container.bindFactory(myFactory, myFactory)
const fn = container.resolve(myFactory)
fn === resolvedFunction
컨테이너에 값을 등록하는 다른 방법도 있습니다. 등록하려는 값(타사 라이브러리)에 액세스할 수 없을 때 특히 유용합니다.
class A {
//note: there is no static inject property on the class
constructor(public b:B){}
}
class B {}
const container = new Pumpa()
//alternative way of registering
container.bindClass(A,{value:A,inject:[B]})
container.bindClass(B,B)
const instanceA = container.resolve<A>(A)
instanceA.b === B
또한 종속성 배열 주입도 지원합니다.
class A {
static inject = [getArray([A, B, C])]
constructor(deps: [A, B, C]) {}
}
그리고 그것이 요점입니다.
Typescript로 작성되었으며, Microsoft tsyringe(이전에 사용했던)과 유사하게 모델링되었습니다.
설명서에 많은 시간을 할애했으므로 Github repository으로 이동하여 라이브러리에서 수행할 수 있는 다른 작업을 확인하십시오.
저는 새로운 아이디어와 풀 리퀘스트에 열려 있습니다.
Reference
이 문제에 관하여(데코레이터 없이 의존성 주입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ivandotv/dependency-injection-without-the-decorators-3i2p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)