DEV Community

Discussion on: Um Guia sobre Injeção e Inversão de Dependências em Node.js e TypeScript

Collapse
 
cgcdoss profile image
Cássio Santos

Show de bola esse Guia que você fez, parabéns.

Mas fiquei com uma dúvida em relação a como a classe UserController será instanciada...

Porque digamos que eu esteja usando express.js e que eu tenha um arquivo index.ts, que importa essa classe UserController, e na hora que eu fosse usá-la no index.ts eu iria precisar instanciá-la (usando o new) e com isso teria que passar um parâmetro no construtor dela (que seria o userRepo), mas como faz nesse caso? Já que você utilizou uma interface e não é possível instanciá-la...

Tal como esse exemplo

Collapse
 
oieduardorabelo profile image
Eduardo Rabelo

olá @cgcdoss , você enviou uma PNG como exemplo, ficou meio difícil entender qual sua pergunta...

criei um exemplo em github.com/oieduardorabelo/typescr...

lá você vai encontrar:

  • Dependency Injection
  • Dependency Inversion
  • TypeScript
  • Integration Tests
  • Unit Tests

confere lá e me diga se isso responde sua pergunta?

um abraço

Collapse
 
oieduardorabelo profile image
Eduardo Rabelo • Edited

ah, acho que entendi @cgcdoss:

...e com isso teria que passar um parâmetro no construtor dela (que seria o userRepo), mas como faz nesse caso?

no artigo não temos a exportação do UserRepo para ser instanciada como parâmetro do UserController, é isso a pergunta? 😆

baseado no material do autor (em inglês), a explicação é que estamos mostrando o conceito de "você não precisa exportar a classe para usá-la como tipo"

a classe em si será usada na aplicação (no mundo real)

mas para explicar o conceito de inverter a dependência da classe, nós exportamos a interface para uso ao invés da "classe real"

o erro é entre teoria x mundo real nesse caso =)