This page is also available in English.

Continue in English

Quick Start

In TinyDI non c'è nessun passaggio nascosto. Questa pagina è l'intero modello mentale: crea un container, registra un servizio, risolvilo.

L'esempio

ts
import { Container, createToken, ServiceLifetime } from 'tinydi-container';
 
interface IClock {
  now(): Date;
}
 
class SystemClock implements IClock {
  now(): Date {
    return new Date();
  }
}
 
const ClockToken = createToken<IClock>('Clock');
 
const container = new Container();
container.registerFactory(ClockToken, () => new SystemClock(), ServiceLifetime.Singleton);
 
const clock = container.resolve(ClockToken);
console.log(clock.now());

Cosa succede qui

  1. createToken<IClock>('Clock') crea un identificatore type-safe. Il generic <IClock> è l'unico punto in cui il tipo viene scritto — tutto il resto lo inferisce.
  2. container.registerFactory(...) dice al container come costruire il servizio, in modo lazy, la prima volta che viene richiesto. ServiceLifetime.Singleton è il default e qui potrebbe essere omesso.
  3. container.resolve(ClockToken) restituisce il servizio, tipizzato come IClock senza generic esplicito.

Nessun decorator, nessuna reflection

Ogni decisione di cablaggio qui sopra è una normale chiamata a funzione che puoi seguire con Cmd+Click. Nulla qui si basa su reflect-metadata, e non c'è alcun flag del compilatore da abilitare.

Prossimi passi

per navigare per selezionare Esc per chiudere