genericka factory v typescript   otázka

JavaScript

ahoj, poradi mi nekde jak udelat generickou factory nejake odvozene tridy v typescriptu?

neco ve smyslu teto nefunkcni metody:

dataservice<T extends DataService>() {

if (typeof this.instances[T.serviceName] == 'undefined') {

this.instances[T.serviceName] = new T();

}

return this.instances[T.serviceName];

}

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já sice s TypeScriptem ještě začínám, ale mohlo by to být nějak takto:

interface DataService { }

class DataServiceFactory {
	private instances: { [serviceName: string]: DataService; } = { };
		
	public create<T extends DataService>(serviceName : string, dataServiceType): T {
		if (typeof this.instances[serviceName] == 'undefined') 
		{
			this.instances[serviceName] = new dataServiceType();
		}

		return this.instances[serviceName];
	}
}

Konkrétní typ je ale potřeba předat i do metody create třídy DataServiceFactory:

class MyDataService { /*...*/ }

var factory = new DataServiceFactory();
var service = factory.create("MyDataService", MyDataService);
nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback