This page is also available in English.

Continue in English

FAQ

TinyDI supporta la constructor injection automatica?
No, per scelta di design. Colleghi tu stesso gli argomenti del costruttore dentro una factory ((c) => new UserService(c.resolve(UserRepositoryToken))). Questo è il compromesso centrale di TinyDI: più codice esplicito, zero reflection.
Posso registrare lo stesso token due volte, per sovrascriverlo?
Non direttamente — una seconda registrazione su un token già registrato lancia RegistrationError. Chiama prima container.remove(token) (oppure container.clear() per azzerare tutto), poi registra di nuovo. È utile per sostituire le implementazioni nei test.
TinyDI supporta i lifetime scoped (per-request)?
Non in questa versione — oggi esistono solo Singleton e Transient. Il design non preclude intenzionalmente l'aggiunta di un lifetime scoped in futuro, ma non fa parte dell'API attuale.
TinyDI supporta i child container?
Non in questa versione. Ogni Container è completamente autonomo e senza stato globale condiviso, il che lascia aperta la porta a una relazione parent/child in una versione futura, senza richiedere un redesign.
TinyDI è legato a Node.js?
No — ha zero dipendenze a runtime e non usa API specifiche di Node, quindi gira senza modifiche su Bun, Deno e nel browser.
Una factory può essere asincrona?
Factory<T> è sincrona per scelta di design ((container: Container) => T). Se devi costruire qualcosa in modo asincrono, risolvi come servizio un valore che restituisce una promise (Token<Promise<T>>) e fai l'await al punto di chiamata — TinyDI al momento non offre un'API di risoluzione asincrona dedicata.
per navigare per selezionare Esc per chiudere